What Would You Give for Speed: Trade-offs in Eventually Consistent Systems at Fly.io by Somtochi Onyekwere

ScyllaDB 0 views 30 slides Oct 15, 2025
Slide 1
Slide 1 of 30
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30

About This Presentation

Drawing on examples from engineering Corrosion (an source distributed system designed to handle fast eventual consistency across Fly.io's cloud platform), this talk examines the nuanced relationship between speed and consistency in eventually consistent databases, what that means for developers ...


Slide Content

A ScyllaDB Community
What Would You Give for Speed:
Trade-offs in Eventually Consistent
Systems at Fly.io
Somtochi Onyekwere
Software Engineer

<Somtochi Onyekwere> (she/her)

Software Developer, @ Fly.io
■Working on distributed systems and
networking software
■Recently watched: Last of us and Severance
■Learning espanol

The need for speed

(Else) (Latency) or (Consistency)

CAP -> PACELC
(Else) (Latency) or (Consistency)

It takes time to agree

-Two phase commits
-Quorum reads/writes
-Whenever nodes have to
reach out to other nodes to
agree

Conflict-free Replicated Data Types

CRDTs
■Any replica can be modified without coordinating with another replicas;

CRDTs
■Any replica can be modified without coordinating with another replicas.
■When any two replicas have received the same set of updates, they reach the
same state.

CRDTs
■Any replica can be modified without coordinating with another replicas.
■When any two replicas have received the same set of updates, they reach the
same state.
■The data type (+ an algorithm) takes care of any conflict during merge

Corrosion

Corrosion
■Global replication system for sqlite data

Corrosion
■Global replication system for sqlite data
■CRDTs for conflict resolution

Corrosion
■Global replication system for sqlite data
■CRDTs for conflict resolution
■Gossip for data dissemination

Gossip-Style
Dissemination

Corrosion
■Global replication system for sqlite data
■CRDTs for conflict resolution
■Gossip for data dissemination
■Custom syncing protocol

Corrosion
■Global replication system for sqlite data
■CRDTs for conflict resolution
■Gossip for data dissemination
■Custom syncing protocol
■SWIM for membership protocol

Measuring latency

How quickly are we
processing changes

How long does it take for
change to get everywhere

Hybrid logical clocks

Working with eventually-consistent
systems

Reduce conflicts

Retries

Replays

Links

●https://github.com/superfly/corrosion
●https://github.com/superfly/cr-sqlite
●https://crdt.tech

Thank you! Let’s connect.
Somtochi Onyekwere
[email protected]
@somtochiama
Tags