Fast Eventual Consistency: Inside Corrosion, the Distributed System Powering Fly.io

Disclaimer: This summary has been generated by AI. It is experimental, and feedback is welcomed. Please reach out to info@qconlondon.com with any comments or concerns.

Fast Eventual Consistency: Inside Corrosion, the Distributed System Powering Fly.io

Presented by Somtochi Onyekwere, this talk delves into the design and implementation of Corrosion, an open-source distributed system designed to handle fast eventual consistency across Fly.io's cloud platform, particularly focusing on:

  • The background and necessity of Corrosion, developed as a replacement for Consul to improve scalability and consistency in data dissemination across nodes.
  • Corrosion's architecture, which uses:
    • SQLite: Each node has an SQLite database for local data management.
    • Conflict-free Replicated Data Types (CRDTs): Used for conflict resolution when replicating data across the distributed system.
    • SWIM Gossip Protocol: Manages cluster membership, ensuring nodes are aware of each other’s state.
    • QUIC Transport Protocol: Enables efficient data packet exchange between nodes.
  • The role of CRDTs in maintaining eventual consistency by allowing independent updates which synchronize without requiring a fixed sequence of operations, ensuring replicas eventually converge to the same state.
  • The system's decision-making process under CAP theorem constraints, focusing on availability and partition tolerance at the expense of immediate consistency.
  • The significance of efficient data routing and dissemination to provide fast operations across Fly.io's globally distributed network infrastructure.
  • Potential issues, including the lack of built-in authorization or authentication and challenges with destructive changes or schema management.
  • Lessons learned from transitioning from Consol to Corrosion, emphasizing the importance of optimizing data write/read processes for distributed environments.

Implemented in Rust for its memory safety and effectiveness as a systems programming language, Corrosion is portrayed as a robust solution for modern cloud-based application requirements, especially those demanding a high degree of data consistency across distributed networks.

This is the end of the AI-generated content.


This talk explores Corrosion, an open-source solution built on SQLite that delivers fast, eventually consistent replication across distributed nodes. Initially developed at Fly to replace Consul for service discovery, Corrosion has evolved to power the platform, enabling the rapid dissemination of machine and service data across numerous nodes with a p99 latency of one second. Leveraging technologies such as Conflict-free Replicated Data Types (CRDTs) for conflict resolution, the SWIM gossip protocol for membership management, and the QUIC transport protocol, Corrosion is implemented in Rust and is open-source. In this talk, we will explore these technologies, dive into architectural and design decisions, and discuss how Corrosion is used in production at Fly. Whether you're familiar with these concepts or they're new to you, join us for an in-depth look at Corrosion.


Speaker

Somtochi Onyekwere

Software Engineer @fly.io, Previously Developer Experience Engineer @Weaveworks

InfraOps Engineer at Fly.io. Currently working on distributed systems and networking software. Previously worked on Kubernetes @Weavework

Read more
Find Somtochi Onyekwere at:

From the same track

Session augmented reality

Developing Meta's Orion AR Glasses

Monday Apr 7 / 11:45AM BST

Meta announced the Orion AR Glasses in September 2024. It is a time machine to demonstrate that it's possible to build an immersive augmented reality experience in a glasses form-factor. There were numerous technical challenges to make this a reality.

Speaker image - Jinsong Yu

Jinsong Yu

Software Engineer @Meta, Led the Development of Orion AR Glasses Software Stack, Previously @Google and @Microsoft

Session AI/ML

Lessons Learned From Building LinkedIn’s First Agent: Hiring Assistant

Monday Apr 7 / 05:05PM BST

In October 2024, we announced LinkedIn’s first agent, Hiring Assistant to a select group of LinkedIn customers.

Speaker image - Karthik Ramgopal

Karthik Ramgopal

Distinguished Engineer & Tech Lead of the Product Engineering Team @LinkedIn, 15+ Years of Experience in Full-Stack Software Development

Speaker image - Daniel Hewlett

Daniel Hewlett

Principal AI Engineer & Technical Lead for AI @LinkedIn, 12+ Years of Expierence in ML and AI Engineering, Previously @Google

Session architecture

Architecture in the Lead: Scaling Today, Shaping Tomorrow

Monday Apr 7 / 10:35AM BST

The BBC’s websites and apps handled well over 100 million visitors in 2024, with 40 million people arriving on UK Election night alone. That’s a lot of scale for an architecture to handle, but it’s just the beginning.

Speaker image - Matthew Clark

Matthew Clark

Head Of Architecture for the @BBC's Digital Products, 25+ Years Developing Online Software

Speaker image - Ian Arundale

Ian Arundale

Lead Architect for the @BBC's Digital Products, 20+ Years in Software Engineering

Session AWS serverless

Kraken's Serverless Architecture for Keeping the Grid Green

Monday Apr 7 / 02:45PM BST

The green energy transition is real, and happening, but it needs technology to make it successful. Everything from renewable energy generation onto the grid, to how consumers use energy, needs technology to be effective and keep up with today's demands.

Speaker image - Kevin Bowman

Kevin Bowman

Platform Engineering @KrakenTech (Octopus Energy), Previously @SkyBet and Others, Passionate About Removing Friction From Getting Stuff Successfully Into Production

Session

Connecting the Dots: Architectures (Limited Space - Registration Required)

Monday Apr 7 / 01:35PM BST