The engineering bottleneck with assembled stacks
Frontend engineers want one query surface over several stores and end up operating a federation hobby: a gateway process on a VM, resolvers reaching into three vendors’ databases, and a schema whose production shape exists nowhere in git. The query language delivered the ergonomics; the plumbing underneath stayed artisanal.
Architecture on the Software Lifecycle Cloud
The worker is the GraphQL server (your framework of choice), deployed beside the data it resolves. Tables are keyed for resolver patterns — by id, by owner, by time — and persisted queries can be stored as rows when clients are first-party apps. Gateway routing keeps the endpoint private or public per environment, and the schema file lives in the repository the worker deploys from, versioned with the resolvers.
Resolvers over keyed data, honestly
GraphQL does not repeal data modelling: resolvers that fan out into per-field table reads will feel it at scale, exactly as anywhere else. The stack’s contribution is colocation and declaration — the worker, tables, and buckets are one project, so the N+1 you inevitably write is visible, measurable, and fixable in one repo instead of across vendor boundaries.
- Schema and resolvers version together in git; the worker deploys from the same stack.json as its data
- Persisted queries for first-party clients are table rows, so the allowed-query list is data you can audit
- Files resolve to presigned bucket URLs — GraphQL returns references, never proxies bytes
When REST-shaped routes are simpler
If your clients are your own two apps with stable screens, screen-shaped routes (the mobile-BFF pattern) may serve you with less machinery. GraphQL earns the worker when genuinely different clients shape genuinely different queries over the same data — and this stack hosts that honestly, as code you own.
Frequently asked questions
No, and this page will not pretend otherwise. You run your GraphQL server as a nodejs worker; KERNSTACK provides the declared tables, buckets, gateway route, and deploy discipline around it. The schema stays your code, framework and all.
Through the KERNSTACK SDK against the project’s tables and buckets, with access keys injected inside deployed workers. Key design follows resolver patterns — predictable, because your schema is known at declaration time.
Yes. Store approved query documents as table rows keyed by hash; the worker resolves only hashes it finds. That list is auditable data, so “what can the app ask our backend” has a literal answer.
Related capabilities, architectures, and comparisons
Ship your stack on the Software Lifecycle Cloud.
Closed preview on dedicated European infrastructure. Bring a repository or start from a blueprint.