{
  "id": 19234268,
  "title": "Two apps one process",
  "url": "https://urgent.news/2026/11/09/two-apps-one-process",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-11-09T22:14:10.000Z",
  "source": {
    "name": "Lobsters",
    "slug": "lobsters",
    "url": "https://andersmurphy.com/2026/11/09/two-apps-one-process.html"
  },
  "original_language": "en",
  "account": "Running multiple applications within a single process can yield significant performance benefits compared to running them as separate processes. This approach eliminates the need to allocate separate resources such as thread pools, schedulers, heaps, GC, caches, and more for each application. Instead, these resources can be shared across all applications, reducing memory, thread usage, and contention. This can allow for running a larger number of applications within the same resources, improving overall performance.\n\nThough this method might initially seem similar to using a reverse proxy, it is not. A reverse proxy would still require separate processes for each application, each having their own resources, whereas a single process approach shares resources among all applications. This leads to better performance and scalability.\n\nOne of the key advantages of this approach is the reduction in deployment overhead. Normally, deploying an application requires restarting the process, leading to downtime. However, by bundling all applications into a single process, deploying a new application becomes as simple as importing it and adding it to the list of applications. The entire project can be built into an uberjar and deployed with zero downtime. This is akin to a network blip, which is generally considered unnoticeable.\n\nTo illustrate this, the author has demonstrated a working example where three different applications are running within a single process on a modestly priced VPS. All three applications are sharing the same resources, showcasing the scalability and performance benefits of this approach.",
  "summary": null,
  "key_points": [],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}