Finite State Machines are overlooked at best, ignored at worst, and virtually always dismissed. This is tragic since FSMs are not just about Door Locks (the most commonly used example). On the contrary, these FSMs are invaluable in clearly defining communication protocols – ranging from low-level web-services through complex telephony application to reliable interactions between loosely-coupled systems. Properly using them can significantly enhance the stability and reliability of your systems.
Join me as I take you through a crash-course in FSMs, using erlang’s gen_fsm behavior as the background, and hopefully leaving you with a better appreciation of both FSM and erlang in the process.
19. Concurrency
The Big Six
From http://www.erlang.org/download/armstrong_thesis_2003.pdf
20. Concurrency
Error encapsulation
The Big Six
From http://www.erlang.org/download/armstrong_thesis_2003.pdf
21. Concurrency
Error encapsulation
Fault detection
The Big Six
From http://www.erlang.org/download/armstrong_thesis_2003.pdf
22. Concurrency
Error encapsulation
Fault detection
Fault identification
The Big Six
From http://www.erlang.org/download/armstrong_thesis_2003.pdf
23. Concurrency
Error encapsulation
Fault detection
Fault identification
Code upgrade
The Big Six
From http://www.erlang.org/download/armstrong_thesis_2003.pdf
24. Concurrency
Error encapsulation
Fault detection
Fault identification
Code upgrade
Stable Storage
The Big Six
From http://www.erlang.org/download/armstrong_thesis_2003.pdf