Architecture guide
Four layers, from the front ends people use to the infrastructure underneath. Select a component to see its role.
Front end
Runtime web app
An Angular application that signs users in on their tenant, loads the app's menus and screens from metadata, and renders them with Form.io and the platform's 33 components. Screen extensions and tenant components are compiled in the browser.
Read moreFront end
TAF Studio
A desktop IDE on the VS Code engine. It pulls an application into files, runs the real screen engine in its designer, checks C# against the platform compiler, keeps a change journal and authors releases from Development to QA.
Read moreFront end
TAFI
The AI assistant, in Studio and in Claude Code. It works through the platform's MCP gateway, where every write is previewed, confirmed and applied under the user's identity.
Read moreFront end
Client SDK
A TypeScript SDK for custom front ends: authentication, data, workflow, notifications and unstyled Angular components, plus React hooks.
Read moreAPI and services
Identity
Issues tokens and holds tenants, users, roles, environments, subscriptions and billing. Supports MFA, Microsoft sign-in and an OAuth 2.0 / OpenID Connect server.
Read moreAPI and services
Metadata
Stores every application definition: entities, fields, queries, screens, scripts and connections. It also runs non-destructive DDL and environment releases.
Read moreAPI and services
Data
The generic data engine. One set of endpoints creates, reads, updates and deletes records of any entity, and applies access scopes, audit, lifecycles, approvals and hooks.
Read moreAPI and services
Workflow engine
Runs workflow action chains triggered by record events, transitions, schedules or a manual call, and serves Virtual URLs.
Read moreAPI and services
Notifications, reports, files
Deliver email, SMS, webhook and in-app notifications; generate PDF, Excel, Word, CSV and HTML reports; store files and share links.
Read moreMetadata and business engines
Hook pipeline
An ordered chain around every data operation: access checks, plan and seat limits, approval locks, ownership, audit and lifecycle, then your C# validation, pre and post hooks.
Read moreMetadata and business engines
Permission engine
Applies each role's Own, Team or All scope per operation, workspace membership found through entity relationships, record sharing and rule-based filters, to every query.
Read moreMetadata and business engines
Lifecycle and approval engines
Lifecycles assign statuses and allow only configured transitions with validators. Approvals resolve approvers, apply quorum, lock records and run SLA reminders and escalation.
Read moreMetadata and business engines
Record spine
Every record has a companion record-information row with its tenant, app, environment, owner, audit fields, lifecycle status and soft-delete flag. Queries join it to scope results.
Read moreData, messaging and storage
PostgreSQL and SQL Server
Application data lives in the database of each app environment; both engines are supported for runtime queries, DDL and migrations.
Read moreData, messaging and storage
RabbitMQ
Carries commands and events between services through MassTransit, with retries and circuit breakers. Record events drive triggers, workflows, notifications, audit and search.
Data, messaging and storage
Redis
Caches metadata and access rules, and carries the results of asynchronous writes back to the caller.
Data, messaging and storage
Elasticsearch
Holds structured logs, the field-level audit trail and the global search index, in indices per tenant.
Read moreWhat happens when a record is saved
The same path runs for a screen, an API call, a workflow action or TAFI.
- Requesttoken and tenant, app, environment context
- Access checkrole scope for the operation
- Hook pipelineplan limits, approval lock, ownership, your C# validation
- Writeone transaction with child records
- Record informationowner, audit, lifecycle status
- Eventstriggers, workflows, notifications, audit, search, real time