-
Notifications
You must be signed in to change notification settings - Fork 9
Integrate with Fabric Event Streams #170
Copy link
Copy link
Open
Labels
auto-configurationeverything about the auto-configuration featureseverything about the auto-configuration featuresenhancementnakadi-submissionpersistenceeverything around DB accesseverything around DB access
Description
Background
Fabric Event Streams (FES) is a (Zalando-internal) solution (internal link) for change data capture, which (in its original and most common configuration) reads a postgresql database's write-ahead log (e.g. of an outbox table) and sends the DB changes out as Nakadi events, giving an alternative implementation of the outbox pattern implemented by this library.
FES is configured via a custom K8s resource (with some extensibility allowed via AWS lambdas).
Idea
The idea here is to allow using this library's EventLogWriter interface to create the eventlog entries, but then use FES to send them out (skipping the whole scheduler + Nakadi interface).
Details:
- still have one outbox table.
- insert + immediately delete as part of the fire* methods.
- configure FES to listen to this outbox table and take all events from there, submit to the event type indicated by the row.
- no configuration of Nakadi interface needed
- no scheduler for event transmitter needed
- There should be a single (boolean) configuration property for the spring-boot-starter which triggers this behavior, possibly some additional ones if there is something to tweak.
Benefits
- The Outbox table can be write+delete only, no reads needed. As we delete immediately, the table won't grow.
- FES is optimized to allow high throughput – the same can't be said for this library.
- Other transformations are possible in FES.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
auto-configurationeverything about the auto-configuration featureseverything about the auto-configuration featuresenhancementnakadi-submissionpersistenceeverything around DB accesseverything around DB access