A Rust microservices project for use as a benchmark for next gen platform architecture(s)
This project is heavily inspired by work in this repo.
There are 4 services described in the diagram below
- Product-service - uses a Redis store to persist the product catalog. The products can be queried as a list and new products can be created.
- Order-service - takes a request of a list of order line items, checks they are all in stock (http call to the inventory service) and if so, creates an order entry in the postgres database and sends an event to NATS pub/sub.
- Inventory-service - takes a request for a product and checks in its postgres database if it's in stock
- Notification-service - subscribes to NATS pub/sub and prints a message for new orders
See this readme for more information on how to run this project in a local k3d cluster.