sequenceDiagram
participant Client
participant AuthService
participant CustomerService
participant ProductService
participant OrderService
participant PaymentService
participant Kafka
Client->>AuthService: POST /auth
AuthService-->>Client: JWT
Client->>CustomerService: POST /customers
CustomerService-->>Client: Customer Created
Client->>ProductService: POST /products
ProductService-->>Client: Product Created
Client->>OrderService: POST /orders
OrderService-->>Client: Order Created
OrderService->>Kafka: OrderEvent Published
Kafka-->>PaymentService: OrderEvent Consumed
Note right of PaymentService: Payment Created
Client->>PaymentService: PUT /payments/order/{orderId}/status/{status}
PaymentService-->>Client: Payment Status Updated
PaymentService->>Kafka: PaymentEvent Published
Kafka-->>OrderService: PaymentEvent Consumed
Note right of OrderService: Status Updated
- Clean Architecture
- Event-Driven Architecture
- Common Closure Principle
- Common Reuse Principle
- Separation of Concerns
- Clean Code
- SOLID Principles
- Resilience
- Idempotency
- Mediator Pattern
- Result Pattern
- Strategy Pattern
- Outbox Pattern
- Retry Pattern
- Circuit Breaker Pattern
docker compose up --detach --build --remove-orphans
Install Into Local Maven Repository: mvn clean install
-
Kong:
http://localhost:8002
-
Keycloak:
http://localhost:8005
-
Username:
admin
-
Password:
password
-
Role:
Manage Realms
>microservices
>Clients
>authservice
>Service Accounts Roles
>Assign Role
>manage-users
-
-
Kafka:
http://localhost:9000
-
Mongo:
http://localhost:27018
-
Redis:
http://localhost:6380
-
Logs:
http://localhost:5601/app/management/data/index_management/data_streams
-
APM:
http://localhost:5601/app/apm/services
Localhost: http://localhost:8010
Docker: http://localhost:9010
Kong: http://localhost:8000/authservice
Localhost: http://localhost:8015
Docker: http://localhost:9015
Kong: http://localhost:8000/configurationservice
Localhost: http://localhost:8020
Docker: http://localhost:9020
Kong: http://localhost:8000/customerservice
Localhost: http://localhost:8025
Docker: http://localhost:9025
Kong: http://localhost:8000/productservice
Localhost: http://localhost:8030
Docker: http://localhost:9030
Kong: http://localhost:8000/orderservice
Localhost: http://localhost:8035
Docker: http://localhost:9035
Kong: http://localhost:8000/paymentservice