A service is a part of a system running in a separate operating-system process. Splitting systems this way can limit crash impact, distribute work across machines, and support horizontal scaling. section 1.1.5
Services resemble microservices but differ in granularity:
- Microservices typically place multiple activities inside each service instance; Erlang concurrency can use much finer-grained processes, such as one process per player or game session. section 1.1.5
- A server process is sequential internally but exposes a concurrent communication interface externally, often managing one task and its state. section 7.4
- Calls provide responses and can apply back pressure; casts avoid blocking but provide no guarantee that a request arrived or succeeded. section 7.4
Services in a to-do system
Separate processes can manage individual to-do lists, map names to list servers, and handle database requests through a worker pool. Keeping one list with one process avoids race conditions and preserves consistency. section 7.4






