Now entering the Phoenix territory. The first phoenix command generated this 🤯.

Today I learned about the GenServers and DynamicSupervisor in . The idea is to basically spin up new process for every user or request (whichever makes sense) and then supervise it using the Supervisor.

DynamicSupervisor just spins up a supervisor process without any child. You can spin new children by passing the child_spec to the start_child function.

Today, I learned about Supervisors in . There is this concept of Spec which sounds similar to an interface to me. So, functions in Supervisor module expect a child_spec, that is one of two possibilities. If your module implements that, that Supervisor will agree to supervise the Application. The supervisors are cool, it automatically restarts the Application if it crashes based on the options provided. Its kinda like Systemd in that aspect.

Today, I learned about Applications in and how I can make one. Also got to use Agents in the Application. Still unclear about the `use` keyword though.

In , today learned about Agents today and a handy little tool :observer.start() that shows a bunch of statistics from BEAM.

Today I learned about Mnesia, the distributed database built into the runtime.

PS: Elixir School is wonderful resource for learning


Args is an open microblogging platform for my family and close friends to interact with the Fediverse.