Oban enterprise solutions
Technology

Layered, event-driven and cloud-native

Designed for volume from the first line.

Azure Kubernetes ServicePrivate network · Key VaultPostgreSQLOne book of record per productCóras EngineC# · .NET 10 · rules in memoryServices over HTTPSSmall JSON contractsBrowser applicationsAdmin · member · employer
The stack

Five layers, each with one job

01
Browser applicationsAdmin, member and employer screens from one address on Windows or Mac. Nothing to install. Sign-in with Microsoft Entra; no passwords stored.
02
Services over HTTPSEach application exposes small HTTPS and JSON contracts. The browser never opens a database.
03
The Córas EngineC# on .NET 10. One runner for every process number; many workers drain one queue. Rules are loaded once from a sealed release and run in memory.
04
DataEach product owns its own database, PostgreSQL by default. The schema, not the screen, decides what must be stored.
05
PlatformAzure Kubernetes Service on a private network, with managed PostgreSQL, Key Vault secrets and keyless deployment.
Design choices

Decisions that keep it fast and safe

Event-driven, message-based

Native AS4 to the STN and the ATO.

Rules are data

A fee change is a sealed release, not a software project.

One description of every field

Read by screens, checks and the field guide.

No shared databases

Products talk over HTTPS, never through each other's tables.

One design, any stack

The fund chooses the technology without changing the design.

One fee, end to end

From an analyst's rule to the member's account

A fee is written once, tested and sealed. The Engine loads the release a single time and scores every member in memory, then writes the rows in batches. Each posting names the rule that scored it.

  1. Analystwrites the fee in Control
  2. Releaseis tested and sealed
  3. Engineloads it once
  4. Evaluatescores each member in memory
  5. Batchwrites rows with savepoints
  6. Bookof record, with the rule named
The Córas Engine: jobs, workers and the job clock
5M+members in Córas scale testing
2Mmember fund used to size every nightly cycle
18s → 1sIMS SuperStream screen, after paging from the database
19 msEngine time for a six-person member verification
Performance

Built for volume

Rules compiled once

A release is loaded into memory once. Every member is scored in the same process: no network call, no re-reading, no re-parsing.

Batched writes

Rows are written in batches with savepoints, so one bad member never throws away the file.

Many workers, one runner

Workers scale across cores and machines against one queue. A new process is a step list, not a new program.

The database does the heavy lifting

Lists, search, sorting and counts run in the database, a page at a time, not in the browser.

Measured on every run

The job clock splits calculation, SQL and I/O, so the next improvement goes where the time is.

Isolation by design

A busy allocation cannot lock out an analyst, and a bad authoring session cannot touch the member book.

Talk to our architects

Walk through the design with the people who built it: the Engine, the release model and how Córas runs at volume.

Book a session