-
Notifications
You must be signed in to change notification settings - Fork 0
Home
The goal of this project is to develop a Weather Prediction application using Microservice Architecture. The functionalities of this application are built using a Microservice architecture. Below are the details about our current progress and overall plan.
We are still in the early phase of development. We have currently achieved communication between services as per the architectural design mentioned below (except for the session management service). The login process is done using OAuth. The user sends the data to the API gateway and that data flows via queues and reaches the Data Analysis service. The Data Analysis service performs some processing to obtain the number of files that are available for the given date and radar id. This data is currently stored in a separate database instead of a session management database and when the user asks for responses the API Gateway service directly accesses that database and returns the response. We should be up with a session management service soon.
Above is the current architecture that we have planned for now. The system has 5 microservices.
The system has 6 microservices. Below is the detailed description of each service.
This is a routing service. This service acts as a message router between the user ( front-end) and our application.
This service is used for authentication.
The Data Retrieval Service accepts a JSON text which has the date, time, radar id, userid, correlationid. Technically this service is a RabbitMq consumer. It consumes the message from the queue processes it and then forwards it to another queue. The service uses the inputs to download the nexrad data. The service has its own database which keeps the track of request status. Once the files are downloaded the data will be forwarded to another queue. Also, a status message will be sent to the Session management service via queue.
The Data Modelling Service accepts nexrad data. Runs the models and generates the data that could be analyzed. Technically this service is a RabbitMq consumer. It consumes the message from the queue processes it and then forwards it to another queue. The service has its own database which keeps the track of request status. Once the files are downloaded the data will be forwarded to another queue. Also, a status message will be sent to the Session management service via a queue.
The Data Analysis Service accepts data and perform final analysis on the data and generates the data that could be plotted on the graph. Technically this service is a RabbitMq consumer. It consumes the message from the queue processes it and then forwards it to another queue. The service has its own database which keeps the track of request status. Once the files are downloaded the data will be forwarded to another queue. Also, a status message will be sent to the Session management service via a queue.
This service basically keeps the track of the entire session and all the services provide updates to Session Management Service about their progress. When the user asks for data it will be actually sent from Session Management service via API Gateway.