Suppose you have a distributed system deployed in production and you are on the hook for its uptime metrics. Having been there ourselves, we have come to believe that it’s essential for software developers to understand what guarantees a system provides, and to have a good picture of *how* it will behave under unfavorable conditions.
In this talk, we’ll outline the basic theory of safety and liveness properties; the link between modeling properties in your head and converting them into working PropCheck code; and showcase the results of applying our philosophy to example applications. You’ll see how ETS-based, Mnesia-based, and Phoenix-PubSub-based Elixir apps fare when in dire straits.
We hope to convince you that getting from zero to one in property-based testing in not that hard, and show you how to gain confidence in your Elixir application’s performance in production.
Rafal and Simon have spent the last few years building and running distributed BEAM systems in production, in various professional roles.