{
  "id": 9633216,
  "title": "How We Run 4 Services From One Go Monorepo",
  "url": "https://urgent.news/2026/09/24/how-we-run-4-services-from-one-go-monorepo",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-09-24T21:21:09.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/towami/how-we-run-4-services-from-one-go-monorepo-5dlm"
  },
  "original_language": "en",
  "account": "Towami is a commerce platform that utilizes a single codebase to manage four long-running services: site, shops, admin, and worker. Each service has its own entry point and responsibility, making for a modular monolith rather than microservices. The source code is organized in a shared internal/ package tree with sub-packaging by application components such as router, middleware, handler, service, repository, and model/DB. This structure allows for atomic refactors, where changes to one area of code update all related components in a single commit. The worker service processes email, Telegram, and import tasks via Asynq, using Redis queues. The repository also includes an importer command, which is a CLI utility outside of the four binaries. Development involves running each service in Docker with Air for hot reload, but scoped watch configs prevent rebuilding every service when shared code changes. This Go monorepo approach allows for process-level separation while maintaining a single go.mod file and atomic refactors, making it a suitable choice as long as the applications share a schema and are maintained by a single team.",
  "summary": "We're building Towami — a commerce platform that combines white-label online stores with country marketplaces. One codebase produces four long-running services, each with a separate entry point and responsibility. The Four Binaries cmd/ ├── site/ → marketplace portal + country catalogs ├── shops/ → merchant storefronts on custom domains ├── admin/ → back-office panel └── worker/ → background jobs…",
  "key_points": [
    "Towami uses a single Go codebase for four services: site, shops, admin, and worker.",
    "Services have distinct entry points and responsibilities, forming a modular monolith.",
    "Worker service processes tasks via Asynq using Redis queues and shared internal/ package tree."
  ],
  "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."
}