Saltar al contenido principal
Version: Siguiente

Eventos de Dominio

Lana Bank publica eventos de dominio a traves del patron de outbox transaccional. Estos eventos pueden ser consumidos por sistemas externos para integracion, analitica y auditoria.

Todos los eventos se serializan como JSON e incluyen metadatos para trazabilidad y ordenamiento.


Estructura del Evento

Cada evento esta envuelto en un sobre con la siguiente estructura:

{
"id": "uuid",
"event_type": "core.credit.facility-activated",
"payload": { ... },
"recorded_at": "2024-01-15T10:30:00Z",
"trace_id": "trace-uuid"
}

Access Events

Eventos relacionados con la gestion de usuarios y roles.

EventDescriptionPayload Fields
UserCreatedSe creo un nuevo usuarioentity.email, entity.id, entity.role_id
RoleCreatedSe creo un nuevo rolentity.id, entity.name

Credit Events

Eventos relacionados con el ciclo de vida y operaciones de facilidades de credito.

Ciclo de Vida de Facilidad

EventDescriptionPayload Fields
FacilityProposalCreatedSe creo una propuesta de facilidad de creditoentity.amount, entity.created_at, entity.customer_id, entity.id, entity.status, entity.terms
FacilityActivatedSe activo una facilidad de creditoentity.activated_at, entity.activation_tx_id, entity.amount, entity.collateral_id, entity.collateralization, entity.completed_at, entity.customer_id, entity.id, entity.liquidation_trigger
FacilityCompletedUna facilidad de credito fue totalmente pagada y cerradaentity.activated_at, entity.activation_tx_id, entity.amount, entity.collateral_id, entity.collateralization, entity.completed_at, entity.customer_id, entity.id, entity.liquidation_trigger

Eventos de Colateral

EventDescriptionPayload Fields
PendingCreditFacilityCollateralizationChangedCambio el estado de colateralizacion para facilidad pendienteentity.amount, entity.collateralization, entity.completed_at, entity.created_at, entity.customer_id, entity.id, entity.status, entity.terms
FacilityCollateralizationChangedCambio el estado de colateralizacion para facilidad activaentity.activated_at, entity.activation_tx_id, entity.amount, entity.collateral_id, entity.collateralization, entity.completed_at, entity.customer_id, entity.id, entity.liquidation_trigger

Eventos de Pago

EventDescriptionPayload Fields
DisbursalSettledSe liquido un desembolsoentity.amount, entity.credit_facility_id, entity.id, entity.settlement, entity.status
AccrualPostedSe registro el devengamiento de interesesentity.credit_facility_id, entity.due_at, entity.id, entity.period, entity.posting

Eventos de Liquidacion

EventDescriptionPayload Fields
PartialLiquidationInitiatedSe inicio una liquidacion parcialentity.activated_at, entity.activation_tx_id, entity.amount, entity.collateral_id, entity.collateralization, entity.completed_at, entity.customer_id, entity.id, entity.liquidation_trigger
EventDescriptionPayload Fields
FacilityProposalConcludedNo description availableentity.amount, entity.created_at, entity.customer_id, entity.id, entity.status, entity.terms
PendingCreditFacilityCompletedNo description availableentity.amount, entity.collateralization, entity.completed_at, entity.created_at, entity.customer_id, entity.id, entity.status, entity.terms
DisbursalApprovalConcludedNo description availableentity.amount, entity.credit_facility_id, entity.id, entity.settlement, entity.status

Custody Events

Eventos relacionados con custodia de Bitcoin y gestion de billeteras.

EventDescriptionPayload Fields
WalletBalanceUpdatedNo description availableentity.address, entity.balance, entity.id, entity.network

Customer Events

Eventos relacionados con el ciclo de vida del cliente y KYC.

EventDescriptionPayload Fields
CustomerCreatedSe creo un nuevo clienteentity.id, entity.kyc_verification, entity.party_id
CustomerKycUpdatedNo description availableentity.id, entity.kyc_verification, entity.party_id
PartyCreatedNo description availableentity.customer_type, entity.email, entity.id
PartyEmailUpdatedNo description availableentity.customer_type, entity.email, entity.id
ProspectCreatedNo description availableentity.id, entity.kyc_status, entity.party_id, entity.stage, entity.status
ProspectKycStartedNo description availableentity.id, entity.kyc_status, entity.party_id, entity.stage, entity.status
ProspectKycPendingNo description availableentity.id, entity.kyc_status, entity.party_id, entity.stage, entity.status
ProspectKycDeclinedNo description availableentity.id, entity.kyc_status, entity.party_id, entity.stage, entity.status
ProspectConvertedNo description availableentity.id, entity.kyc_status, entity.party_id, entity.stage, entity.status
ProspectClosedNo description availableentity.id, entity.kyc_status, entity.party_id, entity.stage, entity.status

Deposit Events

Eventos relacionados con cuentas de deposito y transacciones.

EventDescriptionPayload Fields
DepositAccountCreatedSe creo una cuenta de depositoentity.account_holder_id, entity.id
DepositInitializedSe inicializo un depositoentity.amount, entity.deposit_account_id, entity.id
WithdrawalConfirmedSe confirmo un retiroentity.amount, entity.deposit_account_id, entity.id, entity.status
WithdrawalApprovalConcludedNo description availableentity.amount, entity.deposit_account_id, entity.id, entity.status
DepositRevertedSe revirtio un depositoentity.amount, entity.deposit_account_id, entity.id

Price Events

Eventos relacionados con actualizaciones de precio BTC/USD.

EventDescriptionPayload Fields
PriceUpdatedSe actualizo el precio BTC/USDprice, timestamp

Report Events

Eventos relacionados con generacion de reportes.

EventDescriptionPayload Fields
ReportRunCreatedSe inicio una ejecucion de reporteentity
ReportRunStateUpdatedCambio el estado de ejecucion de reporteentity

Governance Events

Eventos relacionados con flujos de aprobacion.

EventDescriptionPayload Fields
ApprovalProcessConcludedSe concluyo un proceso de aprobacionentity.id, entity.process_type, entity.status, entity.target_ref

Referencia de Tipos de Eventos

Todos los tipos de eventos siguen la convencion de nombres: core.<module>.<event-name>

ModuloPrefijo de Tipo de Evento
Accesscore.access.*
Creditcore.credit.*
Custodycore.custody.*
Customercore.customer.*
Depositcore.deposit.*
Pricecore.price.*
Reportcore.report.*
Governancegovernance.*

Consumiendo Eventos

Los eventos se publican a traves del outbox transaccional y se pueden consumir mediante:

  1. Consulta directa a la base de datos - Consultar la tabla de outbox
  2. Streaming de eventos - Integracion con colas de mensajes (dependiente de la implementacion)
  3. Pipelines ETL - Via extraccion de Meltano

Para detalles de integracion, contacte al equipo de plataforma.