This microservice is in charge of taking compiled plane frames and exposing them on a per-plane and per-minute basis.
A brief description of each process
This process listens for plane frame messages and stores them in redis.
This process, triggered once a minute, reviews the last minute of plane data and stores it to couchbase as a document linked to the previous minute each plane was sighted.
This process is a webapi which decides which datastore is relevant and then exposes the plane info as a chain of a linked list.
Clone this repository and run with dotnet run --project Application/Application.csproj
This project requires dotnet 8 sdk to run (install link here).
When running locally, I have the rabbit password replaced using the dotnet user-secrets tool. Please follow Microsoft's guide to set the value of rabbit_pass to your configured rabbit account's password for the Applications.csproj.
This project uses the MelbergFramework nuget package, please see its github repo for more info.
| Product | Details | Database Install Link |
|---|---|---|
| Redis | Update the PlaneHistoryContext value of the ConnectionStrings section of appsettings.json. | Docker installation guide for redis here. |
| RabbitMQ | The code will create the exchanges, queues, and bindings for you, just update the Rabbit:ClientDeclarations:Connections:0 details in appsettings.json. | Docker installation guide for RabbitMQ here. |
| Couchbase | Update the Couchbase section with your url and a user that has Full Admin rights. | Docker installation guide for Couchbase here |