AllPre-alpha
Platform gaps
Sumeru is a small Go kernel for modular ERP-style apps: addons, domains, views, chatter, cron, and JSON-RPC. This page sets expectations for implementers — not a claim of feature parity with any other product.
Architecture snapshot
| Dimension | Sumeru today | Typical mature modular ERP |
|---|---|---|
| Runtime | Single Go binary per process; horizontal scale via N replicas | Multi-process app servers (threaded / prefork / async workers) |
| Modules | ~5 kernel + ~8 business (sumeru_addons) | Hundreds of optional apps and localizations |
| UI | SWC (TypeScript SPA workspace) + server HTML shell | Realtime bus WebSocket |
| ORM extension | View XML inherit, bridge modules, events | Dynamic model inheritance, computed fields, metadata models |
| RPC | Allowlisted JSON-RPC at POST /api/rpc | Broad unrestricted RPC on many public methods |
| Realtime | In-process event bus + outbox drain + SWC WebSocket hub | Dedicated bus / WebSocket + DB NOTIFY |
| Scale knobs | INI pool, read replica, rate limits (see Scale architecture) | Worker pools, connection limits, dedicated cron workers |
Closed since August 2026 (gap-plan work)
These were listed as gaps in early 2026 docs and are now implemented (pre-alpha):
| Area | What shipped |
|---|---|
| Computed fields | Go orm.RegisterCompute + ApplyComputes on read paths |
| Aggregation | read_group RPC + ORM ReadGroup (sum/count) |
| Object actions via RPC | call method invokes RegisterObjectAction handlers |
| Versioned migrations | addons/MODULE/migrations/*.sql + sumeru-migrate / install hook |
| List search | Workspace list ?q= filter with ilike across view columns |
| Kanban search | Same ?q= filter on kanban workspace load |
| Email (transactional) | SMTP INI + password reset when smtp_host / smtp_from set |
| DB pool & replica | db_max_open_conns, db_read_replica_dsn, etc. |
| Rate limiting | rate_limit_rpm on /api/rpc and /web/login |
| Multi-instance cron | FOR UPDATE SKIP LOCKED on due sys.cron rows |
| Async plumbing | Outbox drain → in-process queue; mail queue worker |
| SWC realtime bus | WebSocket /web/swc/bus forwards outbox events to logged-in sessions |
| Developer CLIs | sumeru-shell, sumeru-module, sumeru-migrate, sumeru-i18n-import, make test-db |
Do not double-count these as open gaps — see also Feature matrix.
Still open — kernel / platform (P0–P1)
| Gap | Typical ERP pattern | Sumeru today | Impact |
|---|---|---|---|
Model _inherit | MRO merge in dynamic ORM | Deliberately absent | Bridge modules or duplicate models |
| Rich computed graph | Declarative depends/constraints/onchange | RegisterCompute + onchange RPC; SWC modifier expressions v1 | Business logic stays in Go services for complex rules |
| Metadata ORM | Runtime model/field registry | sys.model exists; no runtime field creation | Customization needs recompile + -u |
| Rich server actions | Scriptable automation, webhooks | Declarative publish: / write: only | Power users need Go for complex automation |
| Graph / calendar / gantt | Full view types | Graph v1 + Calendar v1 in SWC; gantt/map/cohort stubs | Reporting UX improving |
| Full mail gateway | SMTP/IMAP, templates, followers | Chatter UI + transactional SMTP stub | No full notification stack |
| Multi-process in one host | Prefork worker pools | One HTTP listener per binary | Scale out = N processes behind LB |
| Attachment filestore | Central attachment store, object storage hooks | Binary fields only | Large files / CDN unclear |
Deferred — business catalog (P2)
Not kernel goals for pre-beta; full ERP suites include inventory/MRP/POS, website/eCommerce, country localizations, payments, payroll, and more. Sumeru covers a thin lead-to-cash + P2P + HR directory slice. See Limitations.
Deferred — SWC / UX (document, not stub)
| Feature | Status | Notes |
|---|---|---|
| Field onchange | Implemented | Go RegisterOnchange + POST /api/rpc onchange; SWC RecordStore.applyOnchange |
sum-template (.sum.xml) | Implemented | Compiler in template/sum/ + esbuild plugin |
| SWC Vision devtools | Implemented | devtools/bridge.ts, in-app panel, optional browser extension |
| Rich graph/charts | Partial v1 | GraphView uses read_group RPC; richer charting is future work |
| List/kanban toolbar search | Implemented | Search beside New button; SPA view-tab sync on record open |
| Form field a11y | Implemented | Label for association, autocomplete tokens, native date input |
UI stubs still visible
| Area | Status | |
|---|---|---|
| List bulk select | Implemented in SWC list view | Client pagination + bulk delete |
| sumeru_ai addon | Pass-through interceptor; placeholder UI | |
XML eval | Stored as literal; not executed |
List search and password-reset email are no longer stubs when SMTP is configured.
Scale roadmap
| Phase | Focus |
|---|---|
| 1 — Production-shaped | Pool INI, stateless replicas, read replica routing, rate limits, SMTP |
| 2 — Async | Queue-backed outbox/cron/mail, cron row locks (shipped), external broker hook |
| 3 — Millions of reads | HPA, PgBouncer, CDN, optional separate API vs render services |
Details: Scale-out architecture, Multi-instance cron.