Erlang
Erlang is a programming language used to build massively scalable soft real-time systems with requirements on high availability. Some of its uses are in telecoms, banking, e-commerce, computer telephony and instant messaging. Erlang's runtime system has built-in support for concurrency, distribution and fault tolerance.
OTP
OTP is set of Erlang libraries and design principles providing middle-ware to develop these systems. It includes its own distributed database, applications to interface towards other languages, debugging and release handling tools.
Sequential Programming
- Numbers.
- Atoms
- Tuples
- Lists
- Variables
- Complex Data Structures
- Pattern Matching
- Function Calls
- The Module Systems
- Starting the system
- Built in Functions (BIFs)
- Function syntax
- An example of function evaluation
- Guarded function clauses
- Traversing Lists
- Lists and Accumulators
- Shell commands
- Special Functions
- Special Forms
Concurrent Programming
- Definitions
- Creating a new process
- Simple message passing
- An Echo Process
- Selective Message Reception
- Selection of Any Message
- A Telephony Example
- Pids can be sent in messages
- Registered Processes
- The Client Server Model
- Timeouts
ETS (Erlang Term Storage)
Erlang Term Storage, commonly referred to as ETS, is a powerful storage engine built into OTP and available to use in Elixir.
ETS is a robust in-memory store for Elixir and Erlang objects that comes included. ETS is capable of storing large amounts of data and offers constant time data access.
Tables in ETS are created and owned by individual processes. When an owner process terminates, its tables are destroyed. By default ETS is limited to 1400 tables per node.
Tables are divided into four different types, set, ordered_set, bag, andduplicate_bag. Asetorordered_settable can only have one object associated with each key. Abagorduplicate_bagtable can have many objects associated with each key.
https://elixirschool.com/en/lessons/specifics/ets
http://erlang.org/doc/man/ets.html