linked lists. Accessing other elements than the head of the list is linear operation (O(N)). Updating is fast as long as we are prepending to the list. • Tuples are stored contiguously in memory. Accessing elements is fast (O(1)), but updating is slow because the entire tuple needs to be copied.
much to do with telecom actually. • Framework for building distributed, fault tolerant applications. • This is really good stuff and Elixir gets this for free and builds on top of it.
the OTP principles and you should. • Do not build monolithic applications that do everything and then some. • Applications should be reusable/testable components. A sort of micro service architecture, if you will.
we avoid “defensive programming” where we try to catch all different errors and handle them gracefully. • It’s better to “fail fast” and “let it crash”. • Let Supervisors restart crashed processes. • Processes can also monitor other processes and be notified if they crash.
Tree consists of Supervisors or Workers. • Workers are always at the leaves of the tree. • The “restart strategy” of a Supervisor can be configured to handle restarts of it’s children.
can use to deploy our applications. • The release contains everything including the ERTS as well as Elixir and your dependencies next to your own application. • Everything is compiled and ready scripts are provided for managing your server application. • You’ll need Mix plugin “exrm” for making OTP releases from your Elixir projects.
apps, API backends and distributed systems. Written in Elixir, you get beautiful syntax, productive tooling and a fast runtime. • Channels provide real-time streaming within Phoenix for building rich, interactive experiences across browsers, native mobile apps, and embedded devices. • http://phoenixframework.org