Architecture
Ark is a banking-platform middleware. It sits between consumer back-ends (partner and application servers that integrate machine-to-machine) and the systems that actually hold the money or perform the regulated checks — core banking, identity verification, payments rails, address validation, communications providers. Ark normalises those underlying systems behind a single, versioned, OpenAPI-described surface, runs the multi-step workflows (onboarding, KYX, provisioning), and keeps the audit trail.
This page is the high-level map. It describes the moving parts and how a request travels through them — not the internals of any one service.
System context
What Ark provides
| Capability | What it means |
|---|---|
| Unified API surface | One versioned, OpenAPI-described contract in front of many heterogeneous back-ends, so consumers integrate once instead of per vendor. |
| Orchestration | Multi-step business processes (onboarding, KYX, provisioning) run as explicit, auditable flows rather than ad-hoc client-side choreography. |
| Multi-tenant, multi-brand | A single deployment serves many clients and brands, scoped by the clientid / brandid carried on every request. |
| Connector abstraction | Each external system is wrapped by a connector that maps Ark's domain model onto that vendor's API, isolating vendor quirks behind a stable interface. |
| Business rules | Routing and tenant/brand behaviour are driven by externally managed rule definitions, evaluated at runtime. |
| Observability & audit | Distributed tracing, structured logging, and an audit trail across the whole request path. |
Building blocks
Ark is a set of independently deployable services. The three that matter at this altitude:
| Service | Responsibility |
|---|---|
| Ark Platform | The front door. Owns the public API surface, authentication and authorisation, multi-tenant routing, connector dispatch, and the audit trail. Most consumer requests land here. |
| Ark Flows | A peer service that runs stateful, long-running workflows (the onboarding journeys). It exposes typed, per-flow API contracts and is backed by a workflow engine that keeps execution state durable across steps and retries. |
| Connectors | A family of small services, one per external system. Each presents a uniform interface to the Platform and translates to/from the underlying vendor. |
Connectors at a glance
| Connector | External system | Role |
|---|---|---|
| UDA | UltraData UltraCS | Core banking — accounts, customers, cards, transactions |
| GreenID | GreenID | Identity verification (KYX) |
| SimpleKYC | SimpleKYC | Identity verification (KYX) |
| Kleber | Kleber / PAF | Australian address validation |
| Twilio | Twilio | SMS / voice communications |
| MessageMedia | MessageMedia | SMS communications |
| BRE | Zen Engine (embedded) | Business-rule evaluation over JDM rule definitions |
KYX is Ark's unified contract for identity verification — it covers both KYC (individuals) and KYB (businesses) behind one surface.
How a request flows
A consumer call is either a single-step Platform operation or a multi-step journey started on Ark Flows:
- Authenticate — the receiving service (the Platform, or Ark Flows for a journey) validates the bearer token against the identity provider and resolves which tenant and brand the request belongs to.
- Route — business rules decide how the request should be handled for that tenant/brand.
- Dispatch or orchestrate — a single-step call goes straight from the Platform to a connector; a multi-step journey is started on Ark Flows, which drives each step by calling back into the Platform (which dispatches to the connectors) and survives failures and retries.
- Integrate — the connector talks to the external system in its native protocol and maps the result back into Ark's domain model.
- Respond — a single-step call gets one consistent, versioned Platform response; for a journey the consumer polls Ark Flows for status. The audit trail is recorded along the way.
Architectural principles
- API-first — every surface is defined as an OpenAPI contract before implementation, so clients and type-safe client code are generated from a single source of truth.
- Adapter pattern for connectors — external systems never leak into Ark's domain. A connector is the only place that knows a given vendor's quirks.
- Replaceable workflow engine — Ark Flows talks to its workflow engine through an abstraction, so the engine can be swapped without changing the public flow contracts.
- Independent services — Platform, Flows, and connectors deploy and scale independently, each owning its own data.
- Multi-tenant by design — tenancy and branding are built into the core request path rather than achieved by running a separate stack per customer.
Tech stack
NestJS · TypeScript · Prisma · SQL Server · Azure (Key Vault / Entra ID) · Temporal · OpenTelemetry · OpenAPI / Redocly.