Skip to content

Overview

OpenOutbox is a specification for implementing the transactional outbox pattern across different storages and message brokers.

This specification is organized into the following sections:

The goal is to standardize outbox behavior independently from a specific database, broker, or framework.

  • define a portable outbox contract
  • separate semantics from implementation
  • support multiple storage and broker backends
  • make delivery guarantees explicit
  • standardize ordering and partitioning behaviors
  • enable conformance testing across implementations
  • defining a single required database schema
  • defining broker-specific wire protocols
  • guaranteeing exactly-once delivery across all systems
  • replacing broker-native semantics

Draft