Detailed Architecture Overview
The Architecture is built on top of the core Spring framework. It is a simplified and automated version of the spring framework. The spring boot follows a layered architecture in which each layer communicates to other layers(Above or below in hierarchical order).
This document describes of the solution architecture, including major components and their interactions, processes, and data. It's a Scalable Platform designed for multi-tenant in the client eco system and can accommodate a flexible number of functions or Tenants and Open for the third-party cooperation and collaboration, where the features can be integrated through a plugin system
Thirdparty System
There are various surrounding systems involved in Backend Architecture to interact and evaluate the activities which are mentioned below:
- OGS - for Authentication and Authorization
- Almeda - for Video Consultation appointment booking and tracking.
- Docyet
- Thryve
- Mindhsine
- Queo
- Yuble
- WonderPush
Multitenancy
System is designed in such a way to handle multiple AOK can be enrolled. New schema to be created for AOK to be onboarded and necessary config related changes will ensure the launch of new AOKs wihtout any Major code changes or implementations.
2 different approach on Multitenncy is possible.
- Shared Compute
In Shared compute model, the multi tenancy is achieved by sharinf the computing infrastucture. Means regardless of the tenant , the API requests will reach to the same backend cluster. In the multi tenancy model of spring boot applications, a schema per tenant model is implemented and activated based on the
X-TENANTID
header specified in the API requests - Dedicated Compute In the Dedicated model , the computing instance will be sperated for the tenant. the Kong gateway and the Kafka clusters will be still shared between tenants , but the API requests will be routed to the seperate tenants based on the request headers from the API gateway itself.
Backend Services
Below are the list of services currently available to serve as per the requirements.
- Authentication Service
- Queo Service.
- Docyet
- Consent Management
- Consent Support Tool
- Challenge Support Tool
- Doctor Search
- Megazine
- yuble
- Symptom Check
- Video Consultation
- User Profile
- User Common Service
- User Account Deletion Service
- Sports Challenge
- Mental Challenge
- Motivation
- User Compass
- Content Service
- Bonus Service
- Notification Service
- Challenge DS
- Cron Job
OGS Login
- The stability of the login in connection with the session and token management is optimally implemented by connecting with OGS OAuth Broker. Navida Pro is not maintaining the credentials and session maintenace.
- Biometric authentication is also enabled.
Challenges
- This is the complex part of the Navida Pro app which connects with various third party systems like Thryve, Mindshine and Komoot to validate and pull the required data for this module.
Data Store Service
- This is one common service where all other services to connect in order to persist data to Database. As per agreed architecture standards, direct persistance of data from respective service is not allowed. Hence data-store-service is one stop solution to push the data.
- Two options are available to push the data to database in data-store-service.
Data-Store-Implementation
andKafka-Implementation
. Data-Store-Implementation
is the direct process to push the data into database.Kafka-Implementation
is the process to push the data into database through Kafka Implementation. This is the must implemented process before delivering the code from DEV to Higher environments. Control is enabled to ensure the code will work withKafka-Implementation
mode only.