Skip to content

denis-tsv/Outbox

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Outbox

Different ways to implement Transactional Outbox pattern for PostgreSQL. Each way is in own branch:

  1. master - basic implementation (long transaction, one worker, can miss messages). 1-basic-version-advisory-lock - advisory lock instead of long transaction
  2. 2-lock-messages-for-update - lock each message for update (broken messages order, long transaction)
  3. 3-pessimistic-lock-messages - pessimistic lock each message (removed long transaction)
  4. 4-virtual-partitions-transaction-id - virtual partitions (read messages to send can stuck because of long transaction)
  5. 5-virtual-partition-with-sequence - virtual partition with synchronized insert to messages table (write messages can stuck on long transaction)
  6. 6-virtual-partition-no-missing-ids - virtual partitions without missing numbers for each partition

About

The best implementation of Outbox pattern

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages