The identity Manager will manage all the information that is required to identity a specific identity within the Rain BSS system.
The first step of the system would be to create the customer as a user on the website, which would not provide the user with any more access but allows the user to login.
The status of the customer would change from step to step and would allow access to other areas of the website. Once the Sim has been activated the customer will need to be upgrade to an account, which will then be created and linked to the individual. Within an account the options would then be made available to add the individual to an organization and with it all the details that comes with.
All communication to the Service should be via REST API's and the microservice should also be able to handle gRPC calls. Events should be published to a Apache Pulsar queue for each predefined event. All the API endpoints are already defined, and the queues. The information inside the microservice should be stored in a Mongo DB. And upon startup all reference lookups should be stored in memory. Thereafter if a identity is queried or patched, it should be kept in memory and persisted on Mongo db.
All code should have unit test implemented and should have at least 80% code coverage on written code - excluding libraries used.