Consistent Disaster Recovery for Microservices: the BAC Theorem

@article{Pardon2018ConsistentDR,
  title={Consistent Disaster Recovery for Microservices: the BAC Theorem},
  author={Guy Pardon and Cesare Pautasso and Olaf Zimmermann},
  journal={IEEE Cloud Computing},
  year={2018},
  volume={5},
  pages={49-59}
}
How do you back up a microservice? You dump its database. But how do you back up an entire application decomposed into microservices? In this article, we discuss the tradeoff between the availability and consistency of a microservice-based architecture when a backup of the entire application is being performed. We demonstrate that service designers have to select two out of three qualities: backup, availability, and/or consistency (BAC). Service designers must also consider how to deal with… 
Microservice Disaster Crash Recovery: A Weak Global Referential Integrity Management
TLDR
A weak global consistency definition for microservice architectures is given and a recovery protocol is presented which takes advantage of cached referenced data to reduce the amnesia interval for the recovered microservice, i.e., the time interval after the most recent backup.
On Recent Advances on Stateful Orchestrated Container Reliability
Thanks to its flexibility and light weight, containers are becoming the primary platform to run microservices. Container orchestration frameworks - like Kubernetes or Docker Swarm - enable companies
Introduction to Microservice API Patterns (MAP)
TLDR
The need for a pattern language for recurring (micro-)service design and interface specification problems is motivated, the language organization is outlined and two exemplary patterns describing alternative options for representing nested data are presented.
Tackling Consistency-related Design Challenges of Distributed Data-Intensive Systems: An Action Research Study
TLDR
This paper reports on the effectiveness and applicability of the novel design guidelines and recommends using the guidelines to architect safe eventually consistent systems in distributed data-intensive systems.
Neutrosophic-based domain-specific languages and rules engine to ensure data sovereignty and consensus achievement in microservices architecture
TLDR
This chapter presents domain-specific languages (DSLs) as a solution to the tough challenges in Microservices, and presents an e-Commerce case study highlighting such challenges, and discusses how DSLs can be useful in solving these challenges.
Migrating from Monoliths to Cloud-Based Microservices: A Banking Industry Example
TLDR
This chapter provides a practice-based view and comparison between the monolithic and microservices styles of application architecture in the context of cloud computing vision and proposes a methodology for transitioning from monoliths to cloud-based microservices.
Design of Scalable and Resilient Applications using Microservice Architecture in PaaS Cloud
TLDR
This paper identifies major challenges of microservice architecture design in the context of the PaaS cloud, and examines the effects of architectural tactics and design patterns in addressing them and applies selected tactics on a sample e-commerce application.
2PC*: a distributed transaction concurrency control protocol of multi-microservice based on cloud computing platform
TLDR
This paper proposes 2PC*, a novel concurrency control protocol for distributed transactions that outperforms 2PC, allowing greater concurrency across multiple microservices, and improves the fault-tolerance mechanism of 2PC* using transaction compensation.
A comparative analysis of adaptive consistency approaches in cloud storage
TLDR
This paper will establish a set of comparative criteria and then make a comparative analysis of existing adaptive consistency approaches in cloud storage, which clarifies the suitability of these for candidate cloud systems.
Joint Post-proceedings of the First and Second International Conference on Microservices, Microservices 2017/2019, October 23-27, 2017, Odense, Denmark / February 19-21, 2019, Dortmund, Germany
TLDR
This paper summarizes the two approaches for customizing multi-tenant SaaS using microservices: intrusive and non-intrusive, and describes a design with a reference architecture and high-level principles promising to meet the general customization requirements.
...
1
2
...

References

SHOWING 1-10 OF 16 REFERENCES
Recovery guarantees for general multi-tier applications
TLDR
A framework for recovery guarantees that masks almost all failures is developed, the main concept is an interaction contract between two components, a pledge as to message and state persistence, and contract release.
Atomic distributed transactions: a RESTful design
TLDR
A lightweight design for transactional composition of RESTful services -- based on the Try-Cancel/Confirm (TCC) pattern -- does not require any extension to the HTTP protocol.
CAP twelve years later: How the "rules" have changed
TLDR
The featured Web extra is a podcast from Software Engineering Radio, in which the host interviews Dwight Merriman about the emerging NoSQL movement, the three types of nonrelational data stores, Brewer's CAP theorem, and much more.
Eventual consistency: How soon is eventual? An evaluation of Amazon S3's consistency behavior
TLDR
A novel approach to benchmark staleness in distributed datastores is presented and the approach is used to evaluate Amazon's Simple Storage Service (S3) and unexpected findings are reported.
Eventual Consistency Today: Limitations, Extensions, and Beyond
TLDR
Brewer’s conjecture--based on his experiences building infrastructure for some of the first Internet search engines at Inktomi--states that distributed systems requiring always-on, highly available operation cannot guarantee the illusion of coherent, consistent single-system operation in the presence of network partitions.
Database replication
TLDR
The original motivation for Postgres-R is reviewed and how the ideas behind the design have evolved over the years are discussed, including the use of group communication primitives with strong ordering and delivery guarantees.
Microservices in Practice, Part 1: Reality Check and Service Design
Service-oriented architecture (SOA) and microservices insiders Mike Amundsen, James Lewis, and Nicolai Josuttis share their experiences and predictions with department editors Cesare Pautasso and
Implementing fault-tolerant services using the state machine approach: a tutorial
TLDR
The state machine approach is a general method for implementing fault-tolerant services in distributed systems and protocols for two different failure models—Byzantine and fail stop are described.
Distributed snapshots: determining global states of distributed systems
TLDR
An algorithm by which a process in a distributed system determines a global state of the system during a computation, which helps to solve an important class of problems: stable property detection.
Eventually Consistent
At the foundation of Amazon’s cloud computing are infrastructure services such as Amazon’s S3 (Simple Storage Service), SimpleDB, and EC2 (Elastic Compute Cloud) that provide the resources for
...
1
2
...