Skip to content

Add more resiliency features #31

@joaofbantunes

Description

@joaofbantunes

Need to think about some additional resiliency features. Some loose ideas:

  • When not all messages in a batch are produced, keep retrying the remainder, instead of breaking off the production loop
    • This is particularly important if using pure push approaches, like PostgreSQL with WAL, where we can't mark things partially completed
    • Not relevant for polling providers
  • When there are issues with message production, have some backoff to avoid retying too much in a short amount of time
  • Retry acknowledging produced messages
  • Include some sort of "health check" abstraction, that the user can implement and OutboxKit checks, in order to pause trying to produce when either the database or the messaging infrastructure is having problems
  • Handle poison messages?
    • Not a fan of this, given it might mess up ordering guarantees, but may be worth having the option
  • Detect when the database is in readonly mode (e.g. during a blue/green deployment) and stop trying to produce, as it won't be able to mark messages as completed

Metadata

Metadata

Assignees

No one assigned

    Labels

    area-resiliencyIssues part of improvements to OutboxKit resiliencyenhancementNew feature or requestepicGroup of enhancements

    Type

    No type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions