Event-driven microservice architecture (EDMA) has emerged as a crucial architectural pattern for scalable cloud applications. In typical EDMAs, database systems are relegated to isolated storage engines for individual components, blind to cross-component transactions, while messaging systems are unaware of each component's application state. Consequently, EDMAs impose a severe trade-off: developers must either sacrifice strong data consistency and integrity or manually manage complex distributed coordination. To address this challenge, we design vMODB, a distributed framework that offers a better trade-off and enables developers to build highly consistent and scalable cloud applications without compromising the benefits of EDMA. The core contribution of vMODB lies in the co-design of a programming abstraction and the underlying specialized system. We propose Virtual Micro Service (VMS), a novel programming model that provides familiar Object-Relational Mapping (ORM) and meta-programming constructs for specifying the data model, constraints, concurrency, and dependencies, making application semantics visible to the system. vMODB leverages semantic visibility to enforce ACID properties by transparently unifying event logs and state management, relieving developers from the burden of ensuring cross-component data consistency and integrity. Thanks to full-stack system optimizations enabled by our co-design, experiments using two benchmarks show that vMODB outperforms a widely adopted state-of-the-art competing framework that only offers eventual consistency by up to 3x.
翻译:暂无翻译