Enforcing Consistency in Microservice Architectures through Event-based Constraints

Research output: Chapter in Book/Report/Conference proceedingArticle in proceedingsResearchpeer-review

378 Downloads (Pure)

Abstract

Microservice architectures are an emerging paradigm for developing event-driven applications. By prescribing that an application is decomposed into small and independent components, each encapsulating its own state and communicating via asynchronous events, new components and events can be easily integrated into the system. However, by pursuing a model where events are generated and processed at the application-level, developers have a hard time to safeguard arbitrary event interleavings from doing harm to application safety.

To address these challenges, we start by analyzing event-driven microservice open-source applications to identify unsafe interleavings. Next, we categorize event-based constraints to address such unsafe encodings, providing an easy-to-use guide for microservice developers. Finally, we introduce StreamConstraints, a library built on top of Kafka Streams designed to enforce explicit event-based constraints defined by developers. We showcase StreamConstraints based on the case of a popular event-driven microservice system, and demonstrate how it could benefit from event-based constraints to ensure application safety.
Original languageEnglish
Title of host publicationACM International Conference on Distributed and Event‐based Systems (DEBS)
Place of PublicationMinal, Italy
PublisherAssociation for Computing Machinery
Publication date28 Jun 2021
Edition2021
Pages180–183
DOIs
Publication statusPublished - 28 Jun 2021
Event15th ACM International Conference on Distributed and Event-based Systems - Virtual
Duration: 28 Jun 20212 Jul 2021

Conference

Conference15th ACM International Conference on Distributed and Event-based Systems
CityVirtual
Period28/06/202102/07/2021

Cite this