This repository contains source code and design documents for MOSIP Registration Processor which is the server-side module to manage ID lifecycle. The modules exposes API endpoints.
Overview of Registration Processor
The front end UI application called Registration Client is available in a separate repo here
Staged architecture:
- Group 1 stages
- Group 2 stages
- Group 3 stages
- Group 4 stages
- Group 5 stages
- Group 6 stages
- Packet uploader
- Packet classifier
- Verification
- Group 7 stages
- UIN generator
- Biometric extraction
- Finalization
- Printing
- Group 8 stages (For Uganda)
- Citizenship Verification
- Group 9 stages (For Uganda)
- Payment Validation The control and data flow in the stages is controlled by Workflow engine
Other services:
- Packet Server
- Registration status service
- Notification service
- Transaction service
An overview of various enrollment scenarious (or flows) is described in ID Lifecycle Management. Registration Processor recognises the following flows:
- New
- Update
- Child
- Correction
- Lost
- Activate/deactivate
- Reprint
The stage sequence against each flow refer here
Vertx is a framework for stages. Stages run as Vertx.
Regprocessor stages are connected with eventbus. MOSIP supports two types of eventbus:
- Vertx Eventbus
- Kafka (default) - provides persistence across restarts (more robust), throttling capacity, better debugging
Kafka offers certain advantages over Vertx eventbus hence it is recommended as the default eventbus mechanism. All events between stages pass through Kafka queues. There is a separate Kafka topic for each stage.
One of the power features is to enable throttling in the pipeline. See Throttling
Distributed cache - for packetmanager
See DB guide
The project requires JDK 1.11.
- To build jars:
$ cd registration $ mvn clean install
- To skip JUnit tests and Java Docs:
$ mvn install -DskipTests=true -Dmaven.javadoc.skip=true
- To build Docker for a service:
$ cd <service folder> $ docker build -f Dockerfile
To deploy Registration Processor services on Kubernetes cluster using Dockers refer to Sandbox Deployment.
Refer to the configuration guide.
Automated functional tests available in Functional Tests repo
API documentation is available here
This project is licensed under the terms of Mozilla Public License 2.0.