Skip to content

About

Event-driven microservices platform built with Spring Boot, Quarkus, Apache Kafka, Docker and Kubernetes.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

17 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 OrderFlow Cloud

Plataforma de Microservicios basada en Eventos con Spring Boot, Quarkus, Apache Kafka y Kubernetes

Java Spring Boot Quarkus Kafka Docker Kubernetes PostgreSQL GitHub Actions


📖 Descripción

OrderFlow Cloud es una plataforma de microservicios desarrollada siguiendo principios de arquitectura moderna para aplicaciones Backend.

El proyecto demuestra cómo múltiples servicios pueden comunicarse de forma asíncrona mediante Apache Kafka, coordinar procesos de negocio utilizando el Patrón Saga, ejecutarse en Docker y desplegarse sobre un clúster de Kubernetes.

El objetivo del proyecto es simular una arquitectura empresarial similar a las utilizadas en sectores como banca, retail, logística y comercio electrónico.


🏗 Arquitectura

                  Cliente
                     │
                     ▼
            API Gateway
         (Spring Cloud MVC)
                     │
               REST HTTP
                     ▼
            Order Service
                     │
          Publica Evento Kafka
                     ▼
         Topic: orders.created
                     │
                     ▼
        Inventory Service
                     │
 Publica inventory.reserved
                     ▼
         Payment Service
                     │
 Publica payment.completed
                     ▼
            Order Service
                     │
      Actualiza Estado Final

🧩 Microservicios

Microservicio Tecnología Responsabilidad
API Gateway Spring Cloud Gateway MVC Punto de entrada de la aplicación
Order Service Spring Boot Creación de órdenes y orquestación de la Saga
Inventory Service Spring Boot Reserva de inventario
Payment Service Quarkus Procesamiento de pagos
PostgreSQL PostgreSQL Persistencia
Kafka Apache Kafka Comunicación asíncrona

⚙️ Tecnologías Utilizadas

Backend

  • Java 17
  • Spring Boot 4
  • Spring Cloud Gateway MVC
  • Quarkus
  • Spring Data JPA
  • Hibernate
  • Maven

Mensajería

  • Apache Kafka
  • Kafka Topics
  • Consumer Groups
  • Serialización JSON
  • Arquitectura Event-Driven

Persistencia

  • PostgreSQL

Contenedores

  • Docker
  • Docker Compose

Orquestación

  • Kubernetes
  • Kind

Observabilidad

  • Spring Boot Actuator
  • Micrometer
  • Correlation ID

Integración Continua

  • GitHub Actions

🔄 Flujo de la Saga

El flujo de negocio implementa el patrón Saga Orchestration.

Crear Orden

↓

orders.created

↓

Reservar Inventario

↓

inventory.reserved

↓

Procesar Pago

↓

payment.completed

↓

Actualizar Estado de la Orden

Estado final:

PAYMENT_COMPLETED

📦 Topics de Kafka

Topic Producer Consumer
orders.created Order Service Inventory Service
inventory.reserved Inventory Service Payment Service
payment.completed Payment Service Order Service

🔗 Propagación del Correlation ID

El proyecto implementa propagación del Correlation ID para facilitar el seguimiento de una misma petición entre todos los microservicios.

Cliente

↓

API Gateway

↓

Order Service

↓

Kafka

↓

Inventory Service

↓

Kafka

↓

Payment Service

↓

Kafka

↓

Order Service

Esto permite rastrear una operación completa utilizando el mismo identificador.


🐳 Docker

Cada microservicio se ejecuta de forma independiente utilizando Docker.

Implementado:

  • Dockerfiles individuales
  • Docker Compose
  • Redes Docker
  • Persistencia PostgreSQL
  • Kafka
  • Kafka UI

☸ Kubernetes

El proyecto fue desplegado completamente sobre un clúster Kubernetes utilizando Kind.

Recursos implementados:

  • Namespace
  • Deployments
  • Services
  • ConfigMaps
  • Secrets
  • Rolling Updates

Se validó correctamente:

  • Comunicación entre Pods
  • Descubrimiento de servicios
  • Comunicación con Kafka
  • Persistencia PostgreSQL
  • Despliegue de los cuatro microservicios
  • Ejecución completa de la Saga
  • Actualización automática del estado de las órdenes

📊 Observabilidad

Actualmente implementado

  • Spring Boot Actuator
  • Micrometer
  • Health Checks
  • Endpoints de métricas
  • Correlation ID
  • Prometheus
  • Grafana
  • Dashboards

Próximamente

  • Métricas distribuidas
  • Alertas
  • Monitoreo de Kafka

🚀 CI/CD

Actualmente implementado

  • GitHub Actions
  • Build automático
  • Ejecución de pruebas
  • Construcción de imágenes Docker

Próximamente

  • Azure Container Registry (ACR)
  • Azure Kubernetes Service (AKS)
  • Pipeline de despliegue automático
  • Rolling Updates

📁 Estructura del Proyecto

orderflow-cloud/

├── api-gateway/
├── order-service/
├── inventory-service/
├── payment-service/
├── docker/
├── kubernetes/
└── .github/
    └── workflows/

✅ Funcionalidades Implementadas

✔ Arquitectura de Microservicios

✔ API Gateway

✔ Spring Cloud Gateway MVC

✔ Apache Kafka

✔ Comunicación basada en eventos

✔ Patrón Saga

✔ Docker

✔ Kubernetes (Kind)

✔ PostgreSQL

✔ Spring Boot 4

✔ Quarkus

✔ GitHub Actions

✔ Correlation ID distribuido

✔ Micrometer

✔ Spring Boot Actuator

✔ Comunicación HTTP + Eventos Kafka


📌 Próximas Mejoras

  • Azure Container Registry (ACR)
  • Azure Kubernetes Service (AKS)
  • Helm Charts
  • Ingress Controller
  • Azure API Management
  • Prometheus
  • Grafana
  • OpenTelemetry
  • Jaeger
  • Zipkin
  • Resilience4J
  • KEDA
  • Horizontal Pod Autoscaler (HPA)

🎯 Objetivos del Proyecto

Este proyecto fue desarrollado con el objetivo de demostrar conocimientos en:

  • Arquitectura de Microservicios
  • Desarrollo Backend Empresarial
  • Arquitectura Event-Driven
  • Apache Kafka
  • Spring Boot
  • Quarkus
  • Docker
  • Kubernetes
  • Comunicación Asíncrona
  • Patrones de Diseño
  • Observabilidad
  • Integración Continua
  • Cloud Native

👨‍💻 Autor

Alex Choque

Backend Java Developer

Especializado en:

  • Java
  • Spring Boot
  • Apache Kafka
  • PostgreSQL
  • Docker
  • Kubernetes
  • Arquitectura de Microservicios
  • Desarrollo Backend Empresarial

⭐ Nota

Este proyecto continúa en evolución.

Las siguientes etapas incluirán la migración de la plataforma hacia Microsoft Azure, incorporando:

  • Azure Kubernetes Service (AKS)
  • Azure Container Registry (ACR)
  • Azure API Management
  • Helm
  • Prometheus
  • Grafana
  • Observabilidad completa
  • CI/CD para despliegues automáticos

About

Event-driven microservices platform built with Spring Boot, Quarkus, Apache Kafka, Docker and Kubernetes.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages