Skip to content

Integrate with Fabric Event Streams #170

@ePaul

Description

@ePaul

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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions