TwistingTwists
Journal : Designing Elixir systems with OTP
This is my Journal for readings on Designing Elixir Systems with OTP.
Will post chapter 01 tomorrow! Stay tuned!
Most Liked
AstonJ
Nice one TT! Another book I am interested in reading at some point! ![]()
3
TwistingTwists
Chapter 01
Concepts / RE-Thinks:
DFTwBLWB : Do Fun things with Big Loud Worker Bees - acronym to think about layering application.
DFT = for building blocks of project
BLWB = for letting components work together.
Why layers?
- Testing each component with SIMILAR functions together (because they are grouped together! )
- Healing - supervisors
- the concept is (called
lifecycle) as simple as turn-off the TV and restart tofixit! - So, shut down CLEANLY (note,emphasis)!
- the concept is (called
Managing state :
- recursion and message passing to manage state.
- This is new! = message passing is usually an advanced concept and not ‘generally’ used to manage state, unless - Elixir or MVC model.
3
TwistingTwists
Chapter 02 : Know Your Elixir Datatypes
Types and pro-cons
| DataType | Properties | Pro | Cons |
|---|---|---|---|
| Atoms | are integer + constant + NOT garbage collected | use = name concepts + constant tables type lookup | NOT convert user-input to atom |
| Arrays = NOT in Elixir! | - | random access is cheap + traversing O(n) + | |
| Lists | NOT arrays! + singly linked-lists + | pattern matching on head is O(1) | Appending at END of lists or LARGE lists |
| Maps | random access O(log n) => useful for heavily edited data | use MapSet when only Keys (uniqueness) | |
| Strings | are binaries => efficiently stored + copy is a FULL copy (unlike lists) | DO NOT LET processes hold references to long string => may cause memory leaks + NOT use long strings for storing info + DONT concatenate | |
| Tuples | fixed length data structure | use for tagging data + read chunks of data like csv | slow append => don’t edit (if need to, use Maps) |
| Functions | send function to data, NOT data to function | ||
| PATTERN matching | allows multiple dimension inheritance (sort of) => better than inheritance!! |
3
Popular Community topics
So I have enough money to last a year. Realistically I’m still going to have to work part time painting. I’m so done with it though!
I h...
New
The very first time I’ve seen a line of Elixir I was in awe. Coming from Ruby the syntax was familiar.
But I wanted to know what was thi...
New
TL;DR I am reading “Domain Modeling Made Functional” and discussing and keeping a journal of what I learned from it, any co-readers welco...
New
I have read first chapter. Will add my notes / code tries / self exploration as I go along!
Thank you @AstonJ for encouraging to start ...
New
I would love to begin a book club with Mike Amundsen’s (@mamund) book
Design and Build Great Web APIs.
It seems that building new syste...
New
This is my Journal for readings on Designing Elixir Systems with OTP.
Will post chapter 01 tomorrow! Stay tuned!
New
With Tailwind now the default CSS framework shipped with Phoenix we thought it would be nice to run this book club on the Elixir Forum.
...
New
With Phoenix and LiveView having recently had a fairly major release, and Programming Phoenix LiveView being updated too, we thought it w...
New
Learning Domain-Driven Design
Building software is harder than ever. As a developer, you not only have to chase ever-changing technologic...
New
https://fs.blog/mental-models/
I’ve been reading Farnham Street for a while, and this topic is the recommended starting point for new re...
New
Other popular topics
I know that these benchmarks might not be the exact picture of real-world scenario, but still I expect a Rust web framework performing a ...
New
Create efficient, elegant software tests in pytest, Python's most powerful testing framework.
Brian Okken @brianokken
Edited by Kat...
New
A few weeks ago I started using Warp a terminal written in rust. Though in it’s current state of development there are a few caveats (tab...
New
Programming Ruby is the most complete book on Ruby, covering both the language itself and the standard library as well as commonly used t...
New
Leverage Elixir and the Nx ecosystem to build intelligent applications that solve real-world problems in computer vision, natural languag...
New
Develop, deploy, and debug BEAM applications using BEAMOps: a new paradigm that focuses on scalability, fault tolerance, and owning each ...
New
If you’re getting errors like this:
psql: error: connection to server on socket “/tmp/.s.PGSQL.5432” failed: No such file or directory ...
New
Get the comprehensive, insider information you need for Rails 8 with the new edition of this award-winning classic.
Sam Ruby @rubys
...
New
Ok, well here are some thoughts and opinions on some of the ergonomic keyboards I have, I guess like mini review of each that I use enoug...
New
As digital systems increasingly run the world, mastery of the recurring patterns of software development risk is the key to fast and effe...
New
Categories:
Sub Categories:
Popular Portals
- /elixir
- /rust
- /wasm
- /ruby
- /erlang
- /phoenix
- /keyboards
- /python
- /js
- /rails
- /security
- /go
- /swift
- /vim
- /java
- /clojure
- /emacs
- /haskell
- /typescript
- /svelte
- /onivim
- /kotlin
- /c-plus-plus
- /crystal
- /tailwind
- /react
- /gleam
- /ocaml
- /elm
- /flutter
- /vscode
- /html
- /ash
- /deepseek
- /zig
- /opensuse
- /centos
- /php
- /react-native
- /scala
- /lisp
- /sublime-text
- /textmate
- /nixos
- /debian
- /agda
- /deno
- /django
- /kubuntu
- /arch-linux
- /nodejs
- /spring
- /ubuntu
- /revery
- /manjaro
- /lua
- /diversity
- /julia
- /quarkus
- /markdown









