SakkolDev
All projects
2025 · Backend Architect

Job App Microservice Platform

Demonstrated mastery of modern microservices patterns — fault tolerance, async messaging, and full observability — in a production-ready, container-orchestrated platform.

Spring BootSpring CloudKubernetesRabbitMQKeycloakPostgreSQLDocker

Business Context

Building a job platform that is resilient, independently deployable, and fully observable requires careful architectural decisions around service coupling, failure handling, and operational visibility.

The Solution

An event-driven, 6-service platform using Spring Boot 3, adhering to Hexagonal Architecture to isolate domain logic from infrastructure concerns.

  • Decoupled async communication via RabbitMQ for domain events
  • Synchronous inter-service calls with OpenFeign and Resilience4J circuit breakers
  • Dynamic service discovery with Netflix Eureka
  • Centralized configuration via Spring Cloud Config
  • Distributed request tracing with Zipkin

Architecture Overview

Hexagonal Architecture isolates core domain logic from infrastructure adapters. The Spring Cloud Gateway acts as the single entry point, routing to services registered in Eureka. RabbitMQ decouples producers and consumers, while Zipkin provides end-to-end distributed tracing across all 6 services.

Spring Cloud Gateway (API Gateway)
Netflix Eureka (Service Discovery)
RabbitMQ (Async Messaging)
Keycloak (OAuth2 / JWT Security)
Spring Cloud Config (Centralized Config)
Zipkin (Distributed Tracing)
Flyway (DB Schema Versioning)
Kubernetes (Container Orchestration)

Tech Stack & Reasoning

TechnologyWhy it was used
Spring Boot 3Enterprise-grade framework for building production-ready microservices.
RabbitMQAsynchronous domain event messaging to decouple services and improve resilience.
KeycloakCentralized OAuth2/JWT identity provider for securing all service endpoints.
KubernetesContainer orchestration for scalable, self-healing multi-stage deployments.
PostgreSQLReliable ACID-compliant relational database for each service's data store.
Resilience4jCircuit breaker pattern to prevent cascading failures across services.

Key Features

  • 6 independently deployable Spring Boot microservices
  • Asynchronous event publishing with RabbitMQ
  • Circuit breaker fault tolerance with Resilience4j
  • OAuth2 / JWT authentication via Keycloak
  • Full distributed tracing with Zipkin
  • PostgreSQL schema versioning via Flyway

Engineering Highlights

Adhered to Hexagonal Architecture to strictly isolate domain logic from infrastructure adapters for maximum testability.

Engineered a resilient API Gateway featuring Eureka dynamic service discovery and Resilience4J circuit breakers.

Implemented full-stack observability using centralized Spring Cloud Config and Zipkin distributed tracing.

Deployed via multi-stage Kubernetes containers ensuring zero-downtime rolling updates.

Challenges & Solutions

Challenge

Cross-service communication failures could cascade and bring down the entire platform.

Solution

Implemented Resilience4j circuit breakers on all synchronous OpenFeign calls with fallback handlers.

Impact: Achieved fault isolation — individual service failures no longer propagate to consumers.

Performance Metrics

6Services
HexagonalArchitecture

What I Learned

  • Designing domain boundaries to minimize coupling in microservices
  • Implementing circuit breakers and fallbacks for resilient inter-service communication
  • Orchestrating multi-service deployments with Kubernetes and Flyway migrations

System Interface

Job App Microservice Platform — feature view