I am designing a dedicated syslog-processing daemon for Linux that needs to be robust and scalable and I\'m debating multithread vs. multiprocess.
The obvious objection
Thanks everyone for your feedback.
I have decided on a multi-process architecture, similar to the Apache web server. The processes will scale nicely on multi-processor/core systems. Communications will be performed with pipes or sockets.
Processes will be ready to use in a process-pool so there's no process spawning cost.
The performance hit will be negligible in comparison to the robustness I'll gain.