grafana / quickpizza

Pizza, pizza, pizza!
https://quickpizza.grafana.com/
Apache License 2.0
58 stars 12 forks source link

Split backend into several microservices #11

Closed roobre closed 1 year ago

roobre commented 1 year ago

This PR provides a first implementation of splitting the backend into several components, which can be enabled together on a single service, leading to a monolith-like deployment; or enabled separately into several deployments, leading to a microservices-like deployment.

The following groups of API endpoints have been defined:

Additionaly, a homemade gateway has been developed. This gateway is automatically enabled together with the Frontend service if the application is deployed using microservices, and allows users to reach services other than the frontend from the browser.

Each of this groups can be deployed as a separate service, or arbitrarily together.

API groups (or services) communicate with each other using HTTP calls, e.g. the Recommendations service queries Catalog for the ingredients list and Copy for names and adjectives. It also POSTs recommendations to the catalog once served. These HTTP requests will take place even if the application is deployed as a single service, meaning the service will query itself. This allows keeping the code simple.

Remaining work:

image

Distributed tracing, yay!

image