Skip to content

feat: NICK_PALOMINO new microservices#613

Open
nbpalomino wants to merge 1 commit intoyaperos:mainfrom
nbpalomino:main
Open

feat: NICK_PALOMINO new microservices#613
nbpalomino wants to merge 1 commit intoyaperos:mainfrom
nbpalomino:main

Conversation

@nbpalomino
Copy link

@nbpalomino nbpalomino commented Mar 3, 2026

Se plantea la Solucion con la siguiente Arquitectura:

  • 02 Microservicios (business-financial y core-antifraud)
  • CQRS y Event Sourcing para desacoplar las operaciones Read / Write
  • Command, Query y Events - (Reactive Bus con Sink.Many)
  • DB Postgres con Event Store (only append)
  • Kafka como Stream de Eventos en tiempo real, con alta escalabilidad
  • Redis como Cache Layer (mayor resiliencia y menor tiempos de respuesta)

Descripcion

Kafka Event Stream

02 topics: Consumer y Producer para cada Topic

  • Topico de Transaccion para revision [transaction.request].
  • Topico de Transaccion con resultado [transaction.result].

DB Postgres [financial_db] 02 tables: Event Sourcing - Write Side, Read Side

write-side

  • ID: UUID
  • completed: Boolean
  • Status: String (PENDING, APPROVED, REJECTED)
  • created_at: Datetime

Redis Cache Layer

  • Guarda como Hash el Transaction recibido (PENDING)
  • En caso de Hit-miss consulta la DB con el ID de la Transaction
  • Actualiza solo el STATUS del Transaction dentro del HASH (REJECTED O APPROVED)

API Core Antifraud

  • Recibe un Message del Topic transaction.request
  • Aplica validación del Value > 1000 = Status: REJECTED
  • En caso contrario Status: COMPLETED
  • Envia el Message al Topic transaction.result
  • Fin

API Business Financial

  • Recibe un Request desde el Endpoint (/transaction)
  • Guarda el Transaction en la DB
  • Guarda el Hash en Redis
  • Envia un Message Transaction al Topic transaction.request
  • Recibe un Message Transaction en el Topic transaction.result
  • Valida que el Transaction no esté actualizado anteriormente en la DB
  • Actualiza el Status de Transaction en la DB segun lo recibido en el Message
  • Actualiza el Hash en Redis
  • Fin

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