Choose Your Layers

The layers we will present to write a typical project are not set in stone. Instead, they are a rough scaffold, a framework for thinking about solutions to common design problems. We’re not slaves to these systems but they help to free us from dealing with mechanical details so that we can focus on solving problems.

We recommend the software layers: data structures, a functional core, tests, boundaries, lifecycle, and workers. Not every project will have all of these layers, but some will. It’s your job as the author of a codebase to decide which layers are worth the price and which ones to eliminate. It’s a lot to remember, so use this sentence as a mnemonic:

Do fun things with big, loud worker-bees.

The first letter of ...

Get Designing Elixir Systems With OTP now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.