Get2pc -
Imagine booking a flight + hotel package via get2pc:
Phase 1 (Prepare)
Phase 2 (Commit)
If the Hotel Service had replied "No" (room already booked), the Coordinator would send ABORT to the Flight Service, releasing seat 12A without charging the customer.
get2pc commit --txid tx-001
In the golden age of monolithic databases, maintaining consistency was easy. You hit BEGIN TRANSACTION, performed your updates, and hit COMMIT. The database handled the rest.
Fast forward to microservices. Your payment service talks to inventory, which talks to shipping, which talks to analytics. Suddenly, that single database transaction is a relic. How do you ensure that money isn’t deducted without an item being reserved? get2pc
Enter get2pc—a practical implementation of the Two-Phase Commit (2PC) protocol, adapted for distributed systems and often seen in saga orchestrators and transactional outbox patterns.