All Projects
Backend

Conference Platform — Spring Cloud Microservices

Full Spring Cloud microservices system for conferences & keynotes: Config Server, Eureka discovery, API Gateway, two JWT resource servers secured by Keycloak (OAuth2/OIDC), OpenFeign inter-service calls with token propagation, and an Angular client.

5
Microservices
Eureka
Discovery
Keycloak JWT
Auth
Angular
Frontend
Approach

Config Server + Eureka + Gateway pattern, each service a JWT resource server, Feign with token propagation

Tech Stack
Java 17Spring Boot 3.4Spring Cloud 2024EurekaSpring Cloud GatewayConfig ServerKeycloakOpenFeignAngularH2
Keywords
Spring CloudEurekaAPI GatewayKeycloakOAuth2OpenFeignAngularMicroservices
Deep Dive

A complete distributed system (SDIA mock-exam solution) managing conferences and keynotes with the full Spring Cloud stack: centralized config, service discovery, gateway routing and end-to-end OAuth2 security.

Architecture

                         ┌──────────────┐
                         │   Keycloak   │  realm: exam-realm
                         │ (OAuth2/OIDC)│
                         └──────┬───────┘
                                │ JWT
        ┌───────────────┐       ▼
        │  Angular SPA  │ ──► Gateway :8888 ──► Eureka :8761 (discovery)
        └───────────────┘       │                    ▲
                                 ├──► keynote-service :8081
                                 └──► conference-service :8082 ──(OpenFeign)──┐
                                                                              │
                          Config Server :8088  ◄── all services pull config   │
                          keynote-service ◄───────────────────────────────────┘

Services

ServicePortRole
config-service8088Spring Cloud Config Server (Git-backed)
discovery-service8761Eureka service registry
gateway-service8888API Gateway + CORS
keynote-service8081Keynotes resource server (H2)
conference-service8082Conferences resource server (H2), calls keynotes via Feign

Security & resilience

  • Every microservice is a JWT resource server; JwtAuthConverter maps Keycloak roles → Spring authorities
  • FeignInterceptor propagates the bearer token across inter-service calls
  • Environment-variable-driven config Git path → portable across machines
  • All 5 services compile and pass tests without a running Keycloak