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
- Group 7 stages
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 scenarios (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 21.0.3 and mvn version 3.9.6
- 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 DSL Automation
API documentation is available here
This project is licensed under the terms of Mozilla Public License 2.0.