When critical entities (e.g., new rankings or votes) are created, the system often needs to update secondary services (e.g., sending emails, updating search indexes). Currently, if the secondary action fails after the database commit, the system enters an inconsistent state.
Solution: Implement the Transactional Outbox Pattern. Instead of directly calling external services, the main transaction saves an event payload into an outbox_events table in the same database transaction. A separate background worker will poll this table and guarantee at-least-once delivery to the message broker or external API.
Assignment Request
Hey maintainers, I would like to work on this issue. Could you please assign it to me and add the ECSoC26, Level 3, and good-backend labels?
Program: ECSoC'26
When critical entities (e.g., new rankings or votes) are created, the system often needs to update secondary services (e.g., sending emails, updating search indexes). Currently, if the secondary action fails after the database commit, the system enters an inconsistent state.
Solution: Implement the Transactional Outbox Pattern. Instead of directly calling external services, the main transaction saves an event payload into an
outbox_eventstable in the same database transaction. A separate background worker will poll this table and guarantee at-least-once delivery to the message broker or external API.Assignment Request
Hey maintainers, I would like to work on this issue. Could you please assign it to me and add the
ECSoC26,Level 3, andgood-backendlabels?Program: ECSoC'26