Handling events in distributed systems often leads to the "dual write" problem where saving state to the database succeeds, but publishing the corresponding event fails.
To solve this, I built PHPOutbox, a package that implements the Transactional Outbox pattern to guarantee at-least-once event delivery for PHP applications.