Processing Data Manejador
Todo comienza con el Processing Data Manejador, que simplemente actúa como un proxy alrededor de los actores Resequencer. Esta clase implementa un IPF Processing Data Manejador, que permite consumir instancias de Data Envelope.
El Servicio de Notificación receive connector s presenta las siguientes configuraciones:
| Clave de configuración | Descripción | Valor predeterminado |
|---|---|---|
|
El tema que varios servicios están publicando su IPF processing data events onto. |
|
|
docs.confluent.io/platform/current/installation/configuration/consumer-configs.html Kafka ajustes del consumidor] para el tema de respuesta consumidor, como:
|
(Kafka defaults) |
Los cuales son anulados en ipf-impl.conf:
ipf.processing-data.ingress.kafka.consumer {
kafka-clients = {
group.id = ipf-notification-service-ingress-consumer-group
auto.offset.reset = earliest
}
}
Vale la pena entender lo que sucede cuando el Data Envelope llega el Processing Data Manejador. El siguiente diagrama muestra esto.
Cuando el Data Envelope llega el Processing Data El controlador se pasa al actor Resequencer correspondiente para "reordenar", y luego se extraen todos los objetos del contenedor de objetos.
Pueden ser de tres tipos:
-
Contenedor de objetos MDS: son gestionados por MDS Manejador de Objetos
-
Contenedor de Objeto Personalizado: se manejan por Custom Manejador de Objetos
-
Process Object Contenedor: se manejan por Process Object Manejador
Todo MDS los objetos se procesan primero a partir de pasados Data envelope, antes Process objects se pasan a Process Object Manejador.
MDS Manejador de Objetos
MDS El Manejador de Objetos instancia un xref:features/caches.adoc#_payment_cache[datos de pago cache servicio]. Luego, filtra mensajes de los siguientes tipos de objeto:
-
PAIN_001
-
INSTRUCCIÓN_DE_PAGO_001
-
PAIN_001_CREDIT_TRANSFER_TRANSACTION
Luego llama al caching servicio.
Custom Manejador de Objetos
Custom El Manejador de Objetos instancia un xref:features/caches.adoc#_custom_data_cache[datos personalizados cache servicio]. Luego llama al caching servicio.
Pds Manejador de Objetos
Pds El Manejador de Objetos instancia un xref:features/caches.adoc#_pds_data_cache[datos pds cache servicio]. Luego llama al caching servicio.
Process Object Manejador
Process Object El controlador instancia un xref:features/settings-query.adoc#_payment_status_notification_settings_query[Consulta de Configuración de Notificación de Estado de Pago] y un xref:features/notification-sender.adoc#_notification_sender[Remitente de Notificaciones]. Luego filtra mensajes del siguiente tipo de objeto:
-
PROCESO_FLUJO_EVENTO
@startuml participant "Resequencer" as resequencer participant "Process Object Handler" as processobjecthandler participant "Payment Status Notification Settings Query" as paymentstatusnotificationsettingsquery participant "Notification Sender" as notificationsender resequencer -> processobjecthandler: handle activate resequencer activate processobjecthandler processobjecthandler -> processobjecthandler: filter messages processobjecthandler -> paymentstatusnotificationsettingsquery: getPaymentStatusNotificationSettings activate paymentstatusnotificationsettingsquery paymentstatusnotificationsettingsquery -> processobjecthandler: SettingsDTO<PaymentStatusNotification> deactivate paymentstatusnotificationsettingsquery processobjecthandler -> notificationsender: sendPaymentStatusNotification notificationsender --> processobjecthandler: completed @enduml
Como puede ver en el diagrama, hay dos nuevos conceptos que se introdujeron:Consulta de Configuración de Notificación de Estado de Pago y Remitente de Notificaciones. Se introducen y explican en detalle en esas secciones.