Erlang & Elixir GOTO Conf - Graphic Recording
1
Design patterns in Elixir - Graphic Recording
2
Elixir
- Elixir anti-patterns to guide the community
- A
pattern
describes a problem. - Book: Design paterns elements of reusable object-oriented software.
- Objects are about:
behaviour
,mutability
andstate
. - Design Patterns in OO are solved by functional programming:
mediator
,facade
,startegy
,interpreter
,adapter
,decorator
,proxy
,observer
.
Observability at scale - Graphic Recording
3
Erlang
Elixir
Observability is the measure of how well a system's internal states can be inferred from its external outputs. It's also the ability to address failures before they happen. Observability needs to be designed.
- Observability needs to be designed.
- It's about past, present and future:
logs
,metrics
andalarms.
- Design is the key.
Logging
- Detect failures and errors
- What happened in your project?
- Design your logs.
- Avoid mess.
- Record complimentary information about the errors.
Metrics
- Performance indicators in live systems.
- Metrics are not free.
- Types: business, product, and system.
- Management and development should collaborate together.
- Design your metrics.
- Avoid vendor lock-in.
- Understand your system.
- Keep your metrics tidy.
Alarms
- Come from logs or metrics.
Footnotes
-
Erlang & Elixir, GOTO Conf 2023, Francesco Cesarini & Andrea Leopardi. Drawings by @carlogilmar @visual_partner. β©
-
Design Patterns in Elixir, ElixirConf EU 2024, Jose Valim. Drawings by @carlogilmar @visual_partner. β©
-
Observability at scale, Code BEAM Europe BerlΓn 2023, Natalia Chechina. Drawings by @carlogilmar @visual_partner. β©