LogShip ERP — Merchant-Edition Pod (Cell) Architecture Fleet of capped pods · unified accounting WITHIN a pod · scale out by adding pods, never by growing one DB Merchants (self-service) self-register · {sub}.logship.de Control plane — shared (NEW) Tenant registry: merchant → pod / org Signup router + org provisioning Pod capacity meter nginx — TLS termination + host → pod routing {sub}.logship.de lookup Pod A · cap ~N merchants Nuxt SSR — PM2 'erpfrontend-podA' :3001 .env URLV1 → iDempiere A iDempiere A — REST API Postgres A — 1 AD_Client merchants = AD_Orgs · fact_acct unified Read replica A dashboards / BI (read-only) stream Pod B Nuxt SSR — PM2 'erpfrontend-podB' :3002 .env URLV1 → iDempiere B iDempiere B — REST API Postgres B — 1 AD_Client merchants = AD_Orgs · fact_acct unified Pod C … add to scale out spin up another purged seed (Deliverable 1) → horizontal scale-out Shared, stateless services Strapi media (org-namespaced) Elasticsearch (per-pod index prefix) Import workers (rate-limited / merchant) Sentry · Web Push request / write path async import · analytics · pod lookup Pod = isolated per-customer stack (today’s purged seed, deployed once) Control plane (shared) Shared stateless