Presentation: Efficient Fault Tolerant Java with Aeron Clustering
Share this on:
What You’ll Learn
- Understand the value and practicality of replicated state machines in Java.
- Hear from a performance expert on building a fast, efficient consensus protocol for a clustering use case.
- Learn how guaranteed message delivery semantics were achieved using Raft with Aeron clustering.
Abstract
Distributed systems present a number of challenges. Node failure, unreliable networks, resource starvation, and even the unpredictability of time itself can, and do, make our systems complex and fragile. We deserve and can do better. In this session, we will talk about Aeron Clustering, a new means for deploying replicated state machines in Java. Replicated state machines are just a nice way to deploy elegant business logic. What new options are opened up to Java when you combine the speed and efficiency of Aeron with the consensus model of RAFT you might ask? Come to this talk to understand what a replicated and recorded stream of events can do for your business logic.
What do you want someone to leave your talk with?
The audience should, hopefully, leave with an idea that a lot of systems designed with mutable data structures and mutable state can be implemented in a cleaner and more robust way with replicated state machines that consume a single immutable log of events. And specifically that this model can replace many systems that rely on "guaranteed message delivery" semantics.
Is this talk only for people implementing clustering using Raft, or will the lessons be transferable to other use cases?
The key takeaways should be transferable to many systems. Especially systems typically requiring guaranteed message delivery semantics.
What level of experience are you expecting an audience member to have?
Similar Talks
Tracks
-
Microservices: Patterns & Practices
Evolving, observing, persisting, and building modern microservices
-
Developer Experience: Level up Your Engineering Effectiveness
Improving the end to end developer experience - design, dev, test, deploy, operate/understand. Tools, techniques, and trends.
-
Modern Java Reloaded
Modern, Modular, fast, and effective Java. Pushing the boundaries of JDK 9 and beyond.
-
Modern User Interfaces: Screens and Beyond
Zero UI, voice, mobile: Interfaces pushing the boundary of what we consider to be the interface
-
Practical Machine Learning
Applied machine learning lessons for SWEs, including tech around TensorFlow, TPUs, Keras, Caffe, & more
-
Ethics in Computing
Inclusive technology, Ethics and politics of technology. Considering bias. Societal relationship with tech. Also the privacy problems we have today (e.g., GDPR, right to be forgotten)
-
Architectures You've Always Wondered About
Next-gen architectures from the most admired companies in software, such as Netflix, Google, Facebook, Twitter, Goldman Sachs
-
Modern CS in the Real World
Thoughts pushing software forward, including consensus, CRDT's, formal methods, & probalistic programming
-
Container and Orchestration Platforms in Action
Runtime containers, libraries, and services that power microservices
-
Finding the Serverless Sweetspot
Stories about the pains and gains from migrating to Serverless.
-
Chaos, Complexity, and Resilience
Lessons building resilient systems and the war stories that drove their adoption
-
Real World Security
Practical lessons building, maintaining, and deploying secure systems
-
Blockchain Enabled
Exploring Smart contracts, oracles, sidechains, and what can/cannot be done with blockchain today.
-
21st Century Languages
Lessons learned from languages like Rust, Go-lang, Swift, Kotlin, and more.
-
Empowered Teams
Safely running inclusive teams that are autonomous and self-correcting