Skip to content

MongoDB push(ish) provider #27

@joaofbantunes

Description

@joaofbantunes

Did some experiments in this PoC, using MongoDB change streams.

Calling it push(ish) because I'm not relying solely on change streams, I'm using them as a trigger to poll the outbox. That's because change streams don't seem like the most trustworthy way to implement this, as they may have limitations on retention, depending on how the oplog is configured and whatnot.

Maybe later I might consider some more configurable version that relies only on change streams, but for a safe, even if less efficient, first approach, I'll go with being push enough.

To support multiple instances of an outbox producer, will reuse the work on a custom locking mechanism from #26 for leader election, as change streams send the same data to all subscribers.

Note: this implementation will be targeted at the simplest installation, with a single primary replica. More complex installations with multiple primary replicas, like sharding, are outside the scope of this work.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area-nice-to-haveIssues are nice to haves to consider adding to OutboxKitenhancementNew feature or request

    Type

    No type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions