cassioeskelsen / microservice_boilerplate

Ramblings about a simple but efficient microservice boilerplate

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

YAMB - Yet Another Microservice Boilerplate

Ramblings about a simple but efficient microservice boilerplate

Disclaimer: this boilerplate is tailored for the requirements/environment for the company I work for.

However, I believe it can help people who are thinking about working with microservices and don't know where to start.

For better understand of the architechture: our company run all containers on AKS (Azure Kubernetes Services ). All microservices communicates with others through RabbitMQ messages or API. The main database is Mongo and each microservice is responsible for your data.

In practice, some microservices always run together. For example, services that process partner requests. In this case, we have a microservice to receive and initially validate the data (basically schema). The validated data is sent to a worker who effectively processes requests.

So, in this boilerplate I have a directory with an API application and another with the worker. See each of these directories as a separate microservice, I didn't want to separate into 2 repositories in order to keep all the content together.

Libraries

FastAPI - a complete replacement for Flask foccused on API construction. Why?

uvicorn - An ASGI server. Why ASGI Server?

UltraJSON - UltraJSON is an ultra fast JSON encoder and decoder written in pure C

About

Ramblings about a simple but efficient microservice boilerplate

License:Apache License 2.0


Languages

Language:Python 97.9%Language:Makefile 1.3%Language:Shell 0.9%