# Design Principles

Version 5.2.3.3

> This chapter describes the Erlang/OTP design principles. The first section gives an overview, the second one describes 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:

> - supervision
> - servers
> - events
> - 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.

Copyright © 1991-2003 Ericsson Utvecklings AB