You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
no common data processors exist based on ingest/pipeline sdk per #5400.
What would you like to see?
Create a new PaymentProcessor as an implementation of a Processor for deriving payments in a pipeline from origin network data - LedgerCloseMeta
Since payments are ubiquitous, implementing a new processor based on this model should be a good stable building block and example of deriving application data model from the network data model as the origin event in the ingest/pipeline SDK.
To receive origin network data, PaymentProcessor.subscribe(inboundChannel Channel) should be passed a Channel that will be carrying Message of type: LedgerCloseMeta. The PaymentProcessor will attach its own MessageHandler function using inboundChannel.Subscribe(MessageHandler). The MessageHandler function should validate that receivedMessages are of type: LedgerCloseMeta , if not, it should log error and drop the message.
The PaymentProcessor will use Json for encoding of thePaymentEvent into the payload which must be byte array.
The PaymentProcessor will perform an EIP Splitter role, it will find many PaymentEvent per each LedgerCloseMeta it receives on inboundChannel, and will wrap each PaymentEvent into a separate Message and emit it individually onto the pipeline via outboundChannel.Send().
after processors lib design review, we decided to go with a different approach of pipelines created from observable streams using functional operators, this change is not needed anymore and further obsoleted by #5413 and #5414
What problem does your feature solve?
no common data processors exist based on
ingest/pipeline
sdk per #5400.What would you like to see?
Create a new
PaymentProcessor
as an implementation of aProcessor
for deriving payments in a pipeline from origin network data - LedgerCloseMetaSince payments are ubiquitous, implementing a new processor based on this model should be a good stable building block and example of deriving application data model from the network data model as the origin event in the
ingest/pipeline
SDK.To receive origin network data,
PaymentProcessor.subscribe(inboundChannel Channel)
should be passed aChannel
that will be carryingMessage
oftype: LedgerCloseMeta
. ThePaymentProcessor
will attach its ownMessageHandler
function usinginboundChannel.Subscribe(MessageHandler)
. TheMessageHandler
function should validate that receivedMessage
s are oftype: LedgerCloseMeta
, if not, it should log error and drop the message.The
PaymentProcessor
will perform an EIP Message Translator role taking the network origin data as input and using same parsing logic as Horizon ingestion of payments to derive payments from the tx-meta.The
PaymentProcessor
will populate a new derived application model calledPaymentEvent
for each payment:The
PaymentProcessor
will use Json for encoding of thePaymentEvent
into the payload which must be byte array.The
PaymentProcessor
will perform an EIP Splitter role, it will find manyPaymentEvent
per each LedgerCloseMeta it receives oninboundChannel
, and will wrap eachPaymentEvent
into a separateMessage
and emit it individually onto the pipeline viaoutboundChannel.Send()
.Depends on #5400
Depends on #5401
What alternatives are there?
The text was updated successfully, but these errors were encountered: