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

ipf.processing-data.ingress.kafka.consumer.topic

El tema que varios servicios están publicando su IPF processing data events onto.

IPF_PROCESSING_DATA

ipf.processing-data.ingress.kafka.consumer.kafka-clients

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.

processing-data-extract

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.