Appearance
lg5spring
Spring Boot 3.5 + JDK 21 — Framework for Building Microservices Faster
Spring Boot 3.5JDK 21Kotlin 2.2Gradle Kotlin
Hexagonal Architecture
Hexagonal/Ports-and-Adapters con DDD aplicado en cada capa del proyecto.
Event-Driven
Kafka + Avro + Outbox Pattern para mensajería asíncrona confiable.
Distributed SAGAs
Patrón Saga para transacciones distribuidas con compensación automática.
BDD Testing
Cucumber + Testcontainers + Allure para A/TDD de extremo a extremo.
Maven BOM
Parent POM gestionado con dependencias versionadas centralizadamente.
Operabilidad
Logging ELK, Sleuth tracing, Docker, JIB, Multi-arch images.
¿Qué es lg5-spring?
lg5-spring es un Framework BOM (Bill of Materials) de Lg Pentagon (LgLabs) diseñado para crear microservicios Spring Boot de forma rápida y estandarizada.
Es un conjunto de librerías, plantillas y estándares que te permiten enfocarte en el dominio de negocio en lugar de perder tiempo configurando dependencias, plugins de build, logging, testing, y patrones de arquitectura.
Stack Técnico
| Componente | Versión |
|---|---|
| Spring Boot | 3.5.14 |
| Spring Framework | 6.2.2 |
| JDK | 21 |
| Kotlin | 2.2.0 |
| Gradle | 8.x (Kotlin DSL) |
| PostgreSQL | 42.7.5 |
| Kafka | spring-kafka 3.3.2 + Avro 1.12.0 |
| Testcontainers | 1.20.4 |
| Cucumber | 7.21.1 |
| MapStruct | 1.6.3 |
Características Principales
| Característica | Descripción |
|---|---|
| Arquitectura Hexagonal | Ports-and-Adapters con DDD aplicado en cada capa |
| Event-Driven | Kafka + Avro + Outbox Pattern para mensajería asíncrona |
| Sagas Distribuidas | Compensación automática para transacciones distribuidas |
| Testing E2E | Unit → Integration → Acceptance (Cucumber BDD) |
| Maven BOM | Parent POM con dependencias versionadas centralizadamente |
| El Operabilidad | Logging ELK, Sleuth tracing, Docker images con JIB |
Módulos del Framework
El framework está organizado en ~20 submódulos Gradle que cubren todas las necesidades de un microservicio:
Core: lg5-spring-parent, lg5-spring-starter, lg5-spring-api-rest, lg5-spring-data-jpa, lg5-spring-client
Messaging: lg5-spring-kafka (config, producer, consumer, model), lg5-spring-outbox
Patterns: lg5-jvm-saga, lg5-common (domain, application-service)
Tools: lg5-spring-logger, lg5-spring-utils, lg5-jvm-utils
Testing: lg5-spring-testcontainers, lg5-spring-integration-test, lg5-spring-acceptance-test, lg5-jvm-unit-test
Licencia
Distribuido bajo la Licencia MIT.