PurelyFunctional.tv: What is your talk about?
Ali Shoker: Driven by the CAP theorem, Eventual Consistency (and weak consistency data models in general) are currently prominent in practical distributed AP (of CAP) systems due to the high availability they achieve at scale. However, most of these systems are thought about assuming a benign fault model (mainly, crash-recover); and thus a machine, say a replica -- either before or after recovery -- always executes the programs as designed and replies to clients accordingly. Such systems fall short to achieve a major property of (eventual) consistency, i.e., convergence, once Byzantine faults occur, i.e., machines behave arbitrarily (e.g., due to a bug in software layers) or maliciously (e.g., due to an attack), since distinct replicas can execute operations differently and thus they never converge without manual intervention.
The solution for the above problem is not easy due to the (1) inherent complexity of convergence in weak consistency models, (2) the inherent complexity of Byzantine fault tolerance (BFT), and (3) the inherent controversy principles of Strong Consistency (which BFT often adopts) and Eventual Consistency. The talk will touch on these three points, and will suggest a design that I believe is a good tradeoff between BFT and eventual consistency.
PF.tv: Who is your talk for?
AS: The talk targets all people who are interested in building correct distributed systems, researchers and practitioners. Practitioners are in particular targeted since they generally lack knowledge of BFT, or they think that BFT is evil!
PF.tv: What do you hope people will take away from the talk?
AS: I hope that practitioners (designers and developers) get convinced that they should educate themselves about BFT since many failures that occur in real systems are Byzantine faults, but they just don't call it so and maybe don't know how to fix it (without manual intervention).
I also hope that people understand that Byzantine-resilient eventually consistent systems can be built without the burden of understanding every BFT detail. In contrast, I hope I can learn from practitioners why they hate BFT -- if they do, and why BFT is not being widely adopted in their opinions.
PF.tv: What concepts do you recommend people be familiar with to maximize their experience with the talk?
AS: Familiarity with Eventual Consistency, and Byzantine fault tolerance is preferable, but it's not a requirement as the talk will not go into deep details. I however assume that people know about the CAP theorem.
PF.tv: What resources are available for people who want to study up before the talk?
PF.tv: Where can people follow you online?
PF.tv: Are there any projects you'd like people to be aware of? How can people help out?
AS: This work is partially funded through a new European H2020 project on Edge/Fog Computing called LightKone: www.lightkone.eu. The project tries to develop edge computing technology using Synchronization-free components (i.e., based on Conflict-free Replicated DataTypes: CRDT).
Feedback, suggestions, and help on the design or implementation of the prototype of the presented design are appreciated, just contact me.