The architecture of Postfix is quite different from that
of a monolithic system such as Sendmail, which traditionally uses a
single large program for its handling of email messages. Postfix breaks
down tasks into separate functions using individual programs that each
perform one specific task. Most of these programs are daemons, which are processes that run in the background on
your system. The master daemon is started first, and it invokes most other
processes, as needed. Postfix daemons that are invoked by the master daemon process their assigned tasks and
terminate. They might also terminate after a configured amount of time
or after handling a maximum number of requests. The master daemon is
resident at all times, and gets its configuration information at startup from both main.cf and master.cf. See Chapter 4 for more information on Postfix
configuration files.
Figure 3-1 depicts a high-level picture of the Postfix architecture. Broadly speaking, Postfix receives messages, queues them, and finally delivers them. Each stage of processing is handled by a distinct set of Postfix components. After a message is received and placed into the queue, the queue manager invokes the appropriate delivery agent for the final disposition of the message. The next few sections in this chapter discuss the details of each of the stages.