Architecture
ABIS for Criminal Investigations is built on the Innovatrics ABIS platform — a two-tier system consisting of a platform layer for identity and case management and an ABIS biometric backend for matching and template management. Criminal-specific services extend the platform with forensic workflows, latent print processing, video investigation, and case record management, while the shared biometric backend provides the multimodal matching engine used across all ABIS deployments.
Platform layer
Integration service
The integration-service is the primary API entry point. It exposes a REST API following OpenAPI Specification 3.0 with OAuth authentication, and a GraphQL interface for internal communication. Enrollment stations, external forensic systems, regional offices, and third-party case management tools all connect through this service.
Data service
The data-service owns the authoritative identity and case record store. It provides a GraphQL interface to the integration layer and manages persistence of biometric records, applicant profiles, case metadata, and cross-case links to the underlying SQL database.
Deduplication service
The deduplication-service runs 1:N biometric searches on enrollment to detect duplicate records before they enter the authoritative database. In multi-gallery deployments — where criminal, civil, and watchlist records coexist in separate galleries — the deduplication service can be configured to search across gallery boundaries.
Investigation service
The investigation-service is specific to the criminal deployment. It manages criminal case records, tracks latent fingerprint job lifecycle (submission, candidate generation, examiner assignment, ACE-V workflow), detects cross-case connections between evidence items, and generates PDF reports for legal and court use.
Synchronization service
The synchronization-service distributes identity subsets to regional stations, enabling field operations with local biometric search capability even under low-bandwidth or intermittent connectivity.
Authorization service
The authorization-service handles OAuth-based access control, with policy evaluation delegated to Open Policy Agent (OPA). Keycloak provides OAuth/OIDC identity management for all operator and system accounts.
Operator interface
| Component | Role |
|---|---|
case-management | Case record browser with evidence linking, cross-case detection, and court exhibit creation. Central interface for criminal case investigators |
editor-service (latent editor) | Latent print markup tool: minutiae annotation, ridge highlighting, and side-by-side probe/candidate comparison for examiner verification under ACE-V methodology |
video-manager | Video processing tool for pre-recorded surveillance footage: face detection, frame extraction, and 1:N identification against enrolled databases |
instant-search | Rapid subject lookup across criminal, civil, and watchlist galleries with configurable search parameters |
comparison-tool | Side-by-side examiner comparison interface for ACE-V analysis workflows |
adjudication | Split-screen biometric adjudication for deduplication exceptions and identity conflicts |
administration | System administration, user management, audit logs, and monitoring dashboard |
applicants | Applicant record browser for enrolled subjects across criminal and civil galleries |
WebAFIS
webafis provides browser-based access to the ABIS backend for operators without access to the specialist front-ends. It consists of a web server for interactive access and background workers for asynchronous jobs including batch processing, scheduled exports, and gallery maintenance tasks.
ABIS biometric backend
Fast service
The fast-service is the biometric API consumed by the platform layer. It exposes:
- Read operations (Identify, Verify, Get) — biometric search and retrieval against the gallery
- Write operations (Create, Update, Delete) — template ingestion, record updates, and deletion
Extractor
The extractor performs biometric feature extraction from raw images, producing templates for all supported modalities. For criminal deployments this includes ten-print fingerprint extraction, latent print processing, palm print extraction, iris feature extraction, and face template generation. Quality assessment runs per modality, including NFIQ-based fingerprint quality scoring.
Matcher
The matcher is the multimodal biometric matching engine for Faces, Fingerprints (ten-print and latent), Palmprints, and Irises. It is deployed as a horizontally scalable cluster, coordinated by ZooKeeper, and uses Apache Ignite distributed in-memory caches to serve sub-second search results across large criminal galleries.
Image service
The image-service handles storage and retrieval of raw biometric images — crime scene photos, latent print scans, surveillance stills, and enrollment images — separate from the biometric template store.
Multi-gallery support
A single ABIS deployment can host multiple logically independent galleries:
| Gallery | Contents |
|---|---|
| Criminal | Enrolled subjects with criminal records; primary gallery for ten-print and latent searches |
| Civil | Population-scale civil identity records; used for cross-civil identification where licensed |
| Watchlist | Watch-listed persons of interest; continuously searched on encounter or enrollment |
The fast-service routes each biometric operation to the target gallery. Cross-gallery searches — for example, matching a latent print against both criminal and civil galleries simultaneously — are configurable per operation.
Deployment architecture
All inbound traffic enters through Traefik, the ingress reverse proxy. Traefik handles TLS termination, load balancing, and routing.
The data-service persists structured records to a SQL database (Oracle, PostgreSQL, or MSSQL) and binary objects (images, video stills, latent scan files) to MinIO (S3-compatible object storage). Regional stations may run a local MinIO instance that replicates to the central store.
The matching pipeline uses Apache Ignite distributed in-memory caches — separate caches for fingerprint, iris, and face templates — to minimize search latency on large galleries. ZooKeeper coordinates the Ignite and Matcher cluster topology. Cache Persistence backs Ignite state to disk for fast cache warm-up after restart.
RabbitMQ provides asynchronous messaging between services for enrollment events, latent job queuing, and workflow notifications.
Kubernetes handles workload orchestration and service discovery.
Observability: Jaeger and OpenTelemetry for distributed tracing; Grafana for metrics dashboards. Vault manages all secrets, certificates, and encryption keys.
Disaster recovery
The platform supports active-active and active-passive DR configurations.
| Resource | Replication mechanism |
|---|---|
| SQL database | Oracle Data Guard or equivalent — synchronous or asynchronous replication to the DR instance |
| MinIO object store | Side-bucket replication — images and case files mirrored continuously to the DR MinIO cluster |
| Matcher cluster | Independent Matcher instances run in the DR site with Ignite caches populated from the replicated template store |
In active-active mode the DR site can serve matching and case management requests independently, providing continuity in the event of a primary site failure.
See also
- Business Modules — the configurable modules that deliver investigative functionality
- Criminal Case Management — investigation service and operator interface in practice