-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
We can then look at that function and see that ultimately it calls Supervisor.start_link(...) on a bunch of children. That means that one process's only job is to start up all those child processes and "supervise" them, meaning if any of them crash it will be notified and be able to handle that. I note that one of the processes runs the code in the module Hexpm.RepoBase which means it's in charge of managing database connections, and one runs the code in the module HexpmWeb.Endpoint which is the process in charge of managing the Phoenix side of things, handling incoming requests, spinning up new processes to handle each one, and directing them to the right controllers and stuff. Then there's a bunch of other modules listed, for things like rate limiting, billing reports, and other stuff. You can look in the codebase for those listed modules if you're interested, but the thing to note is that by putting the module name there, what happens is the supervisor will spawn a new process and run the start_link function of that module within that new process.
For instance, here's the supervision tree of an app I worked on at work. It's the app that controls the countdown signs on the subway platforms in Boston.