This chapter describes the software architecture used in an Erlang system. The first section describes what is meant by a system, how systems are composed of applications, and how application are built using behaviours.
The following four sections describe individual behaviours in detail. These behaviours include:
- finite state machines
The design principles are then summarized and numerous examples illustrate the tasks involved in developing Erlang applications. These include:
- how to structure an application
- how to create a supervision tree
- how to use the common behaviours
- how to install event handlers
- how to configure an application
- how to write an application specification
- how to test an application
- how to write a distributed application.
The final two sections describe special processes and error logging. Special processes contain information necessary to write specific applications which are not built from the standard system building blocks (behaviours), but are programmed in some other style. Such applications still have to follow certain basic protocols to in order to work with the rest of the system.