This directory contains the JVM backend workspace for Omnibus.
| Path | Purpose |
|---|---|
| mono/config-server | Spring Cloud Config Server |
| mono/eureka-server | Eureka service discovery |
| mono/api-gateway | Spring Cloud Gateway entry point for backend traffic |
| micro/auth-service | Spring Authorization Server and auth flow support |
| micro/user-service | User domain service |
| micro/audit-service | Kafka/audit observation service |
| micro/rule-service | Drools-based bridge bidding rule service |
| micro/workflow-service | Rule-publication workflow service |
legacy/* |
Older or transitional services and projections |
| Service | Responsibility | Local port |
|---|---|---|
config-server |
Centralized Spring Cloud Config | 8888 |
eureka-server |
Service discovery for JVM services | 8761 |
api-gateway |
Spring Cloud Gateway entry point for backend services | 8080 |
auth-service |
Spring Authorization Server based authentication flows and JWT blacklist support | 8082 |
user-service |
User domain and registration flow | 8083 |
audit-service |
Audit/event observation service | 8085 |
rule-service |
Bridge hand parsing, Drools rule evaluation, managed rule storage | 8086 |
workflow-service |
Rule publication workflow and validation orchestration | 8087 |
./gradlew clean buildRun a single service during development:
./gradlew :rule-service:bootRun
./gradlew :workflow-service:bootRundocker compose up --buildThe compose file expects the shared omnibus Docker network and infrastructure services from ../infra when external dependencies are needed.
| Pattern | Used for |
|---|---|
| HTTP/REST | Frontend-facing APIs, development access, Swagger/OpenAPI surfaces |
| gRPC | Backend-to-backend calls through gateway/service clients |
| Kafka/Redpanda | Domain events, audit/archive projections, config bus use cases |
| Service discovery | JVM service lookup through Eureka |
| Centralized config | Shared service configuration through Spring Cloud Config |
Keep service-specific commands, TODOs, API notes and design decisions in the README inside each service directory.
- Use Spring Cloud Function
- Use Spring WebFlux when asynchronous request handling makes sense.
- Use Loom when synchronous request handling makes sense.