"Immutable Values in the Big Wide World" by Tim Ewald and Paul deGrandis

Learn how immutable values and value-based architectures enable reliable, scalable distributed systems through proven patterns, cost optimization, and simplified operations.

Key takeaways
  • Value-based architectures with immutable data enable reliable, scalable distributed systems by separating reads from writes and allowing independent scaling of components

  • Using S3 as the backing store for immutable values and deltas provides effectively infinite scalability while keeping operational costs low compared to managing database clusters

  • Hybrid logical clocks enable coordination-free transactions and causal consistency across distributed systems without complex consensus protocols

  • In-memory computation on large machines with deterministic functions is often more efficient and simpler than distributed microservices architectures

  • Checkpointing with versioned immutable values enables reliable disaster recovery and debugging by allowing system state replay

  • Separating data producers (processors) from consumers (observers) allows flexible scaling and partial data replication based on specific needs

  • Moving complexity to build/design time rather than runtime reduces operational costs and improves reliability

  • Using deltas instead of full value updates enables efficient data transfer and storage while maintaining consistency

  • Value-based architectures support multi-region deployment and cloud/prem hybrid models by leveraging cloud storage replication

  • Critical to consider economics and costs when designing distributed systems - focus on linear rather than non-linear cost growth as system scales