About Distributed Systems
Lars is thinking about distributed systems, and Andreas kind of fears them. The best thing to do for most cases might be to avoid distributing things at all. But if you do end up needing to distribute, you may run into one of the places in the world where worse is better is not necessarily better? Adding distribution on top of something not really built for it is one of the hard problems.
There are deep dives into reconciliation, vector clocks, normalization, and places where fun goes to die. And there, still, are no magical solutions.
Links
- Phoenix pubsub
- Worse is better
- ElectricSQL
- CRDT:s - conflict-free replicated data type
- The CAP theorem
- Soft real time
- Highlander
- N-tier architecture
- Postgres replication
- Vector clock
- Elixir outlaws
- Phoenix presence
- Operational transformations
- Split-brain
- Riak
- CouchDB
- Raft
- Paxos
- Normal forms for databases
- Googles' Mapreduce
- Google Spanner
- CockroachDB
- Cassandra
- Contentful
- The Cambria paper - schema evolution in distributed systems with edit lenses
Quotes
- Distributed systems are interesting
- I'm doing an insert!
- A special little server
- The devil is always in the failure details
- The naive threshold
- The absolute wrong number of machines
- Where all the fun goes to die
- A good, sortable name
- They lie and they drift
- A simple incrementing number is incredibly useful
- Git merge for vector clocks
- Three is the best number