Skip to content

Conversation

@RicardoAlvarado23
Copy link

Reto Técnico Backend Java - Yape

Candidato

Implementación

Stack Tecnológico

  • Lenguaje: Java 17
  • Framework: Spring Boot 3.2.1
  • Base de Datos: PostgreSQL 14
  • Mensajería: Apache Kafka
  • Build Tool: Maven
  • Arquitectura: Clean Architecture / Hexagonal

Servicios Implementados

1. Transaction Service (Puerto 8080)

  • POST /api/v1/transactions - Crear transacción
  • GET /api/v1/transactions/{id} - Obtener transacción
  • Persistencia con PostgreSQL + Flyway
  • Kafka Producer (transaction-created)
  • Kafka Consumer (transaction-status-updated)
  • Optimistic Locking para concurrencia
  • Validaciones con Bean Validation

2. Anti-Fraud Service (Puerto 8081)

  • Kafka Consumer (transaction-created)
  • Validación de reglas: value > 1000 → reject
  • Kafka Producer (transaction-status-updated)
  • Configuración parametrizable

Características Implementadas

  • Clean Architecture: Separación Domain/Application/Infrastructure
  • Event-Driven: Comunicación asíncrona con Kafka
  • Optimistic Locking: Manejo de concurrencia con @Version
  • Flyway Migrations: Versionado de base de datos
  • Docker Compose: Infraestructura reproducible
  • Health Checks: Spring Actuator
  • Documentación: Guías técnicas complet

Ejecución

# 1. Levantar infraestructura
docker-compose up -d

# 2. Compilar
mvn clean install

# 3. Ejecutar Transaction Service
cd transaction-service && mvn spring-boot:run

# 4. Ejecutar Anti-Fraud Service (otra terminal)
cd anti-fraud-service && mvn spring-boot:run

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant