Photo by Vlad Shagov on Gitu
I've decided to learn Elixir.
Not just poking a bit into the language but to be able to build full stack Elixir distributed applications and eventually SaaS.
I don't want to talk much about the why for now but you can find a hint or two on my social media channels.
This post aims to summarize the learning materials I've used so far and the building blocks I intend to learn about and use and I would be more than happy about your feedback and preferences here.
I'll categorize stuff a bit - here we go:
Language / General
Database
- ecto - A toolkit for data mapping and language integrated query
- postgrex - PostgreSQL driver for Elixir
Web Applications
- Plug - A specification for composing web applications with functions
- Bandit - A pure Elixir HTTP server for Plug & WebSock applications
- Phoenix Framework - Framework written in Elixir which implements the server-side Model View Controller (MVC) pattern
Scheduling
- Oban - Robust job processing in Elixir, backed by modern PostgreSQL or SQLite3
Event Sourcing / CQRS
- saga - A dependency-free tool to run distributed transactions in Elixir, inspired by Saga pattern
- commanded - Event Sourcing library for Postgres, EventStoreDB and In-memory
Messaging
- Broadway - Build concurrent and multi-stage data ingestion and data processing pipelines with Elixir
Testing
- ExUnit - Unit testing framework for Elixir.
Identity / Authentication
- Pow - A robust, modular and extendable user management solution
Cloud