Skip to main content
NELLA Labs

Identity and Trust

Identity verification is an orchestration problem, not an integration problem

Teams integrate a verification vendor per country and end up with several incompatible processes and no single audit trail. The fix is to make the sequence itself the thing you build.

NELLA Labs Engineering · Platform and product engineering7 min read

The first market is easy. You pick a verification provider, integrate their SDK, handle the callback, and store the result. The second market is where the trouble starts: different documents, different data sources, a different regulator, and a provider who does not operate there. So you integrate a second vendor, and because their model differs from the first, you write a second flow.

By the fourth market you have four flows, four result shapes, four audit trails and a compliance team who cannot answer a simple question about how decisions are made, because the answer is genuinely different in each country.

Model the sequence, not the vendor

The durable abstraction is the verification sequence: an ordered set of steps, each with a type, a configuration, a set of accepted outcomes and branching rules based on what earlier steps returned. Sequences are data. Adding a market means adding a row, not writing a flow.

  • A step has a type (document, biometric, registry lookup, sanctions screen, manual review) and a provider-agnostic outcome.
  • Providers implement a step type behind one interface, so substitution touches configuration rather than the domain model.
  • Branching is declared in the sequence, not embedded in code — "if the document check returns low confidence, add a manual review step".
  • Every step execution is recorded with its inputs, its provider, its raw response and its interpreted outcome.

Make execution durable

Verification steps call external services that time out, rate-limit and go down. If your sequence executes inside a request handler, a provider outage leaves cases in an ambiguous state that a human resolves manually — and in our experience the manual resolution queue is where compliance failures accumulate.

Execute sequences as durable, resumable workflows. A provider outage suspends the case and resumes it when the provider returns. The customer sees "we are still checking" rather than a failure, and the operations team sees a suspended case rather than a mystery.

Separate the score from the decision

Risk signals should be exposed at component level, not collapsed into a number before a human sees them. When reviewers are handed a score they cannot decompose, they rubber-stamp it — and the organisation has effectively automated a decision it believes is being made by a person. Show the components, show which rule fired, and record the reasoning the reviewer gives.

identityKYCarchitectureaudit

Related

Applied AI

Your RAG system is a data leak waiting to happen

Most retrieval-augmented generation systems enforce permissions at indexing time, or not at all. Both are wrong, and the failure is invisible until it is severe.

8 min read

Technology in Africa

Designing for the connection your users actually have

Building for Ghana and Nigeria changes architecture decisions that a London-only product never has to make. Most of them are about payload size and failure behaviour, not device capability.

6 min read

Responsible AI

Screen for high-risk processing during discovery, not before launch

A data protection impact assessment discovered two weeks before go-live is a schedule problem. Discovered during discovery, it is a design input.

6 min read

Service

Automate

Apply AI and automation where they measurably pay for themselves.

Service

Modernise

Move off systems that have become a tax on everything you do.

Product

Daju Verify

Onboard people and businesses with evidence you can audit.

Next step

Dealing with this yourself?

Tell us what you are building. The Project Architect turns a rough description into a structured brief with an architecture direction.