Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
badass-techie committed Jun 22, 2024
1 parent 94745db commit 05dcf8d
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 22 deletions.
8 changes: 6 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ This code follows best practices such as:

- Unit Testing (JUnit 5, Mockito, Pytest)
- Integration Testing (Testcontainers)
- Design Patterns (Builder, Singleton, PubSub, ...)
- Design Patterns (Publish/Subscribe, Backend for Frontend, ...)

> microservices, event-driven, distributed systems, e-commerce, domain-driven-design, java, python, spring cloud, spring boot, spring cloud gateway, spring cloud sleuth, zipkin, resilience4j, postgresql, mongodb, redis, cache, rabbitmq, kubernetes, k8s, terraform, observability, prometheus, grafana, elasticsearch, fluentd, kibana
Expand All @@ -42,7 +42,7 @@ Below is a visual representation:
![Architecture](./diagrams/architecture.png)

- All microservices are inside a private network and not accessible except through the API Gateway.
- The API Gateway routes requests to the appropriate microservice and also validates the authorization of requests.
- The API Gateway routes requests to the corresponding microservice, routes requests to the appropriate endpoint based on the client (Backend for Frontend), and validates the authorization of requests.
- The Identity Microservice acts as an Identity Provider and is responsible for storing users and their roles, and for issuing authorization credentials.
- The Cart Microservice manages the shopping cart of each user. It uses a cache (Redis) as the storage.
- The Product Microservice stores the product catalog and stock. It's subscribed to the Event Bus to receive notifications of new orders and update the stock accordingly.
Expand All @@ -59,6 +59,10 @@ Observability services include:
- Elasticsearch, Fluentd, and Kibana for aggregating **logs** from microservices
![Kibana Dashboard](./diagrams/kibana.png)

Future work:

- Outsource authentication to a third-party identity provider such as Keycloak

## Setup

### Prerequisites
Expand Down
Loading

0 comments on commit 05dcf8d

Please sign in to comment.