Skip to main content
IIOS — The platform for organizational reasoning
Core platform

Shared Services

Cross-cutting capabilities — identity, audit, search, notifications, billing, and file storage — are provided once as a shared mesh. Applications consume them through the SDK instead of rebuilding them per product.

ForDevelopersEnterprise architectsImplementation teams

The service mesh

Shared services run on a common plane and are available to every workspace, studio, and partner application. Consuming a service inherits its governance automatically — an audit entry is written the same way regardless of which app triggered it.

Shared services mesh
Service meshshared planeIdentityAuditSearchNotifyBillingFiles
One governed implementation, consumed by every application on the platform.

Service catalog

ServiceResponsibilityConsumed via
IdentityAuthentication, sessions, tenant scopingservices.identity
AuditImmutable action ledger and lineageservices.audit
SearchCross-entity retrieval and rankingservices.search
NotificationsEmail, webhook, and in-app deliveryservices.notify
BillingMetering, quotas, and usage recordsservices.billing
FilesPer-tenant object storage with signed accessservices.files

Consuming a service

Services are injected through the SDK and are already scoped to the caller's tenant and permissions. There is no separate configuration to keep them inside the sovereignty boundary.

services.ts
// Shared services are injected, not re-implemented per app.
import { services } from "@iios/sdk"

await services.audit.record({ action: "report.export", subject: reportId })
await services.notify.send({ channel: "ops", template: "threshold_breach", data })
const results = await services.search.query({ q: "degraded pumps", scope })
Reuse is the default
Before adding infrastructure to an application, check the service catalog. Reusing a shared service means you inherit its security, auditing, and residency guarantees for free.