SkillAgentSearch skills...

Microservices

Screaming Architecture, Clean Architecture, Event-Driven Architecture, Clean Code, DDD, SOLID, Test Pyramid, Patterns (Ambassador, Circuit Breaker, Mediator, Outbox, Result, Retry, Strategy), Java 25, Spring Boot 4, Kong, Keycloak, Kafka, MongoDB, Redis, Elastic, Testcontainers, Docker

Install / Use

/learn @rafaelfgx/Microservices

README

Microservices

Build

Ebooks

<table> <tr> <td> <a href="https://hotmart.com/product/microservices/X102617285D"> <img src="https://hotmart.s3.amazonaws.com/product_pictures/01486abc-d26b-4125-a8ea-4b2a212e4a86/Cover.png" /> </a> </td> <td> <a href="https://hotmart.com/pt-br/marketplace/produtos/microservices/A102616752Q"> <img src="https://hotmart.s3.amazonaws.com/product_pictures/a2a7cc7f-de97-49fe-9fdb-1d6de5fe21a1/Cover.png" /> </a> </td> </tr> </table>

System Design

Flow

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

Architecture, Design and Principles

Patterns

Technologies and Tools

Docker

docker compose up --detach --build --remove-orphans

Starter

Install Into Local Maven Repository: mvn clean install

Tools

  • Kong: http://localhost:8002

  • Keycloak: http://localhost:8005 Username: admin Password: password

  • 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

Services

AuthService

Localhost: http://localhost:8010

Docker: http://localhost:9010

Kong: http://localhost:8000/authservice

| Method | Endpoint | Description | |:-----------------------------------------------------:|-------------|-------------| | GET | /auth | Get | | POST | /auth | Auth | | POST | /users | Save | | DELETE | /users/{id} | Delete |

ConfigurationService

Localhost: http://localhost:8015

Docker: http://localhost:9015

Kong: http://localhost:8000/configurationservice

| Method | Endpoint | Description | |:-----------------------------------------------------:|--------------------------------|---------------| | GET | /configurations | Get | | POST | /configurations/broadcast | Broadcast | | GET | /features | List | | POST | /features | Create | | GET | /features/{id} | Get | | DELETE | /features/{id} | Delete | | PUT | /features/{id}/disable | Disable | | PUT | /features/{id}/enable | Enable | | GET | /features/{id}/enabled | Enabled | | GET | /features/groups/{group} | List By Group | | GET | /properties | List | | POST | /properties | Create | | GET | /properties/{id} | Get | | DELETE | /properties/{id} | Delete | | PUT | /properties/{id}/value/{value} | Update Value |

CustomerService

Localhost: http://localhost:8020

Docker: http://localhost:9020

Kong: http://localhost:8000/customerservice

| Method | Endpoint | Description | |:-----------------------------------------------------:|-----------------|-------------| | GET | /customers | List | | POST | /customers | Create | | GET | /customers/{id} | Get | | PUT | /customers/{id} | Update | | DELETE | /customers/{id} | Delete |

ProductService

Localhost: http://localhost:8025

Docker: http://localhost:9025

Kong: http://localhost:8000/productservice

| Method | Endpoint | Description | |:-----------------------------------------------------:|----------------|-------------| | GET | /products | List | | POST | /products | Create | | GET | /products/{id} | Get | | PUT | /products/{id} | Update | | DELETE | /products/{id} | Delete |

OrderService

Localhost: http://localhost:8030

Docker: http://localhost:9030

Kong: http://localhost:8000/orderservice

| Method | Endpoint | Description | |:-------------------------------------------------:|--------------|-------------| | GET | /orders | List | | POST | /orders | Create | | GET | /orders/{id} | Get |

PaymentService

Localhost: http://localhost:8035

Docker: http://localhost:9035

Kong: http://localhost:8000/paymentservice

| Method | Endpoint | Description | |-------------------------------------------------|-------------------------------------------|-----------------| | GET | /payments | List | | GET | /payments/{id} | Get | | ![GET](https://img.shields.io/badg

View on GitHub
GitHub Stars12
CategoryDesign
Updated9d ago
Forks3

Languages

Java

Security Score

95/100

Audited on Mar 22, 2026

No findings