diff --git a/content/concurrency.md b/content/concurrency.md index 07db614..b72550a 100644 --- a/content/concurrency.md +++ b/content/concurrency.md @@ -3,7 +3,7 @@ Any computer program, once run, is represented by one or more processes. Web apps have taken a variety of process-execution forms. For example, PHP processes run as child processes of Apache, started on demand as needed by request volume. Java processes take the opposite approach, with the JVM providing one massive uberprocess that reserves a large block of system resources (CPU and memory) on startup, with concurrency managed internally via threads. In both cases, the running process(es) are only minimally visible to the developers of the app. - +![Scale is expressed as running processes, workload diversity is expressed as process types.](/images/process-types.png) **In the twelve-factor app, processes are a first class citizen.** Processes in the twelve-factor app take strong cues from [the unix process model for running service daemons](http://adam.heroku.com/past/2011/5/9/applying_the_unix_process_model_to_web_apps/). Using this model, the developer can architect their app to handle diverse workloads by assigning each type of work to a *process type*. For example, HTTP requests may be handled by a web process, and long-running background tasks handled by a worker process. diff --git a/public/images/process-types.png b/public/images/process-types.png new file mode 100644 index 0000000..a9d46e0 Binary files /dev/null and b/public/images/process-types.png differ