Posts on let-it-crash

  • Elixir Syntax: Control Flow

    Elixir Syntax Series Data Types and Collections Variables Control Flow Functions
  • Elixir: Running a cluster of nodes

    Elixir Cluster Series Leveraging CRDTs for eventual consistency Elixir: Resilient distributed systems Elixir: Running a cluster of nodes Elixir: Running a cluster of dynamic nodes Elixir and Mnesia: Running a cluster with state Elixir and Raft: Running a cluster with state
  • Phoenix Channels: Inverting responsibility

    WebSockets facilitate real-time, bi-directional communication with low latency but introduce inherent challenges with concurrency. They lack guaranteed message delivery, where messages can arrive out of sequence or not at all. This can lead to inaccurate data presentations on the client side, which is reasonable in non-critical contexts but unacceptable in...
  • LiveView: Navigating concurrency in real-time applications

    Software designed to solve real-life problems must effectively address the issue of concurrency, where the order of operations cannot be trusted due to the unpredictability of timing, distance between interactions, and the potential for missed or delayed messages. To prevent corruption of data or application state, it is crucial to...
  • Absence in Elixir: Gracefully avoiding `nil`

    “I call it my billion-dollar mistake. It was the invention of the null reference in 1965. At that time, I was designing the first comprehensive type system for references in an object-oriented language (ALGOL W). My goal was to ensure that all use of references should be absolutely safe, with...
  • Elixir and Errors: Let it crash

    In complex systems, such as those managing millions of concurrent phone calls, some bugs are transient or rare, making them inherently elusive and impractical to trace and resolve. Erlang keeps this in mind, prioritizing robustness to ensure systems can continue operating smoothly despite individual failures. This approach is encapsulated in...