/
Queue service

Queue service

We decided we will be using RabbitMQ RabbitMQ: One broker to queue them all | RabbitMQ an open source MIT licensed widely used messaging queue solution that can easily be plugged into the .net core solution.
RabbitMQ is highly scalable.
A queue is file based and will require allocated storage in the solution.

To ensure we do not overload the database with requests when the queues run, we’ve decided the following.

  • Queuing messages will happen instantaneously in the API container.

  • Dequeuing messages will happen in a different container

    • In intervals ex. every 30 seconds and batched together when writing data to the database.

  • Format of the items names could be something like:

    • Internal.<cvr>.task

    • Internal.<cvr>.updateCPR

    • External.<cvr>.task

  • Configuration will be in the application settings and will be used in all queues.
    They would contain

    • Dequeue interval in seconds

    • Retry time in seconds

    • Number of Retry before giving up.

    • Queue location root

  • There will be a basic queue service to use in the API

  • There will be a queue for each unique type of functionality we need to handle in a separate dequeuing solution in a different container.

Below is shown an image of how the architecture would look and how queue messages would flow.

 

Related content

MitID login
MitID login
More like this
Test municipality
Test municipality
More like this
Data model and functionality transformation ECP to Valghalla
Data model and functionality transformation ECP to Valghalla
More like this
Integrations to Serviceplatformen
Integrations to Serviceplatformen
More like this
CPR data documentation
CPR data documentation
Read with this
Development packages
Development packages
More like this