- Books microservice: expose CRUD opereration, use flask framework and mongodb database
- Customer microservice: expose CRUD opereration, use flask framework and mysql database
- Borrowing microservice: expose CRUD opereration, use flask framework and mysql database
Test books microservice script: python script for testing boook microservice, test post, put, get all, get one and delete. This script return true or false.
Notification Script: python script for run a Subscribe RabbutMQ, this is used for notification when a new borrowing is added.
Logging: Logging is managed by Elasticsearch and Kibana.
There are two bash script:
- Start with logging: Start all microservices with logging.
- Start without logging: Start all microservices without logging.
Develop 4 microservices as depicted in this diagram:
Microservices can be developed in any any techology , but they must comply with following constraints:
- Use HTTP/REST for synchronous communication
- Use at least two different database technology (RDBMS and NoSQL).
- Use a message broker (Kafka, Active MQ, Rabbit MQ) for asynchronous communications (ie: calling the Notification service)
Evaluation criteria:
- Microservices (0 to 5 points)
- Design patterns (0 to 5 points)
- Testing (0 to 5 points)
- Logging and tracing (0 to 5 points)
- CI/CD (0 to 5 points)
- Docker and Kubernetes (0 to 5 points)