Technical detail
This page gives an overview of the components of the demo project.
Introduction
Documentation about testing in production is neat. Know what's even better? Implementation examples! This is the reason the demo project was brought into existence. This project shows how a the documented ways of testing in production can be implemented in real-world projects.
This section will give an overview of the software components in the afore mentioned demo project.
Schematic overview
As of right now, the project consists of five components: the Proxy (Traefik), the order service, a Message Queue, the kitchen service and a database (MySQL).
Proxy (Traefik)
The proxy is the only component that can be accessed from outside of the cluster. The job of the proxy is to evaluate the request and forward it to the appropriate service.
OrderService
The order service is the first entrypoint for requests. It is this service that handles orders from hypothetical customers. It consists of an API that has three endpoints. Read more about this service here.
Message Queue (RabbitMQ)
The Message Queue (MQ) is a way to allow for asynchronous communication between two services. In the demo project, it is used for communication between the order- and kitchen services. More about the message queue can be found here.
KitchenService
The kitchen service is a worker application. It subscribes on the queue and waits for new orders to arrive. Once an order is published, it will prepare the orders and store handled orders in the database. Read more about this service here.
Database (MySQL)
The database is a MySQL database that is used to store the data generated by the kitchen service. It is quite a basic implementation, however, data separation of various version is important. A description about how this is implemented, can be found here.