Epoxy is a solution that provides transactional guarantees across diverse data stores. It leverages Postgres as the primary database and extends multiversion concurrency control (MVCC) for cross-data store isolation. The motivation for Epoxy is to provide transactional guarantees in the face of heterogenous data and microservices. The Epoxy protocol involves using a snapshot representation and record versioning to enforce transactional isolation. Epoxy surpasses X/Open XA by providing snapshot isolation and has been implemented as a bolt-on shim layer for five diverse data stores. However, Epoxy has limitations, such as requiring exclusive access to secondary stores and potential write conflicts. The evaluation of Epoxy shows that it incurs overhead compared to a non-transactional baseline, but provides higher throughput and comparable latency compared to X/Open XA.

2m read timeFrom muratbuffalo.blogspot.com
Post cover image
Table of contents
MotivationThe Epoxy protocol approachThe Epoxy protocol: setupThe Epoxy protocol: OCCLimitations and OverheadsImplementationEvaluation

Sort: