I Rewrote My MCP Documentation Server in Go and Dropped 3 Containers
Before (PHP/Laravel): 4 containers (app, queue worker, websocket, monitoring) + Redis (queues, cache, sessions) + Meilisearch (full-text search) + 9 Airflow DAGs (scheduled jobs) = ~7.4GB memory li...

Source: DEV Community
Before (PHP/Laravel): 4 containers (app, queue worker, websocket, monitoring) + Redis (queues, cache, sessions) + Meilisearch (full-text search) + 9 Airflow DAGs (scheduled jobs) = ~7.4GB memory limits across 7 moving parts After (Go): 1 container + PostgreSQL (already existed) = 22MB RSS, 1 moving part PHP (Laravel) Go Containers 4 + Redis + Meilisearch 1 Image size ~500 MB 48 MB Memory ~7.4 GB (limits) 22 MB (RSS) Search Meilisearch PostgreSQL FTS Job queue Horizon + Redis River (PostgreSQL) Scheduler 9 Airflow DAGs Built-in That's the before and after for DocuMCP, an MCP documentation server I run in production. It serves documents, git project templates, and offline ZIM archives (DevDocs, Wikipedia, Stack Exchange via Kiwix) to AI agents through the Model Context Protocol. The PHP version worked. But my git history had commits like "Increase Horizon memory limits to prevent OOM crashes" and "Increase documcp-app memory for Vite builds." The feature set had stabilized — I wasn't add