How MergeMind Platform works
The architecture, security model and operational shape of the platform — for engineers evaluating whether to build on it.
One edge, verified identity everywhere
Client → Gateway → Service
Gateway validates the JWT once, then signs and injects:
X-User-Id X-Tenant-Id
X-User-Roles X-User-Permissions
X-Gateway-Signature X-Gateway-Timestamp (HMAC)
Downstream services verify the signature — never the JWT.What the platform guarantees
Six properties you would otherwise have to design, build and defend yourself.
Zero-Trust request model
A single gateway validates the JWT once, then injects signed identity headers (HMAC + timestamp) into the downstream request. Services verify the signature rather than re-parsing tokens, so authentication logic lives in exactly one place.
Tenancy & isolation
Tenant context arrives as a verified header, never from the request body. Every service scopes reads and writes to that tenant at the data layer — enforced, not conventional — with schema-level separation per service as defence in depth.
Authorization: RBAC + ABAC
Role-based permissions cover the common case; an attribute/ownership policy engine handles the rest (e.g. a rep may only touch records they own, while admins bypass). Controllers declare requirements; the platform enforces them.
Events & auditability
Domain writes emit through a transactional outbox, so an event is never published unless its transaction committed. Events flow to Kafka and into an immutable audit log — the basis for compliance history and downstream automation.
Workflows across services
Multi-step, cross-service operations run as orchestrated sagas with compensation and recovery, rather than as chained calls that fail halfway and leave inconsistent state.
Deployment & operations
The platform ships as containers on PostgreSQL, Redis and Kafka, in tiers: a lean core for development, a full platform tier, and an observability tier adding tracing, metrics and logs. Self-host on your own infrastructure, or have us run it.
What building on it looks like
Typed SDKs over the same REST surface, with OpenAPI on every service.
// Every request carries a verified identity + tenant context.
// Your product calls one gateway; services never parse JWTs.
const tenant = await platform.tenants.create({ name: 'Acme Inc' });
await platform.auth.invite({
tenantId: tenant.id,
email: 'admin@acme.com',
role: 'TENANT_ADMIN',
});
// Reads and writes are automatically scoped to the caller's tenant.
const invoices = await platform.billing.invoices.list({ status: 'OPEN' });The SDK packages and full API reference are shared during onboarding while the platform is in assisted early access — they are not yet on a public registry. Request developer access and we'll get you the packages, OpenAPI specs and a sandbox tenant.