Today the Berlin Erlang Factory Lite took place - more than ten talks about Erlang and distributed systems. Compared to the ErlangCamp the talks were about basic concepts and some projects using Erlang, and not so much about coding and hands-on sessions.
One of the highlights was the talk held by Joe Armstrong, one of the co-inventors of Erlang. His talk was a nice wrap-up about distributed systems, reliability, failure detection and recovery, messaging, consistent hashing and the "let it crash" paradigm. He also mentioned the six rules of reliable systems: isolation, concurrency, failure detection, fault identification, live code updates and stable storage.
The more technical presentations dealt with Erlang's BEAM VM, Raft (a distributed consensus protocol) and the use of Erlang's built-in functions trace and trace_pattern for debugging purposes. The details about the components of the BEAM VM by Robert Virding (also a co-inventor of Erlang) were quite interesting: the scheduler (one per thread and by default one thread per core), processes, memory management (like garbage collection) and areas (like the atom table - global and of fixed size!) and the async thread pool (important for asynchronous I/O, as normal file I/O blocks the scheduler!).