Skip to content

IATI/iati-message-queue-service

 
 

Repository files navigation

IATI Message Queue Service

Summary

Product IATI Message Queue Service
Description The specification for the internal message queue service that is used by several IATI products to communicate with each other
Website n/a
Related IATI Registry SuiteCRM Extension
Documentation This README and the docs it links to below
Technical Issues See https://github.com/IATI/iati-message-queue-service/issues
Support https://iatistandard.org/en/guidance/get-support/

Overview diagram

The IATI Message Queue Service is an instance of the Azure Service Bus messaging platform. It is provisioned and configured using the IATI OpenTofu setup.

The component overview diagram below shows which internal IATI components communicate with each other using the IATI Message Queue Service, as well as the message types they send or receive:

IATI internal component over diagram

This diagram is generated from the following PlantUML file iati-message-queue-service-and-apps-overview.

Specifications

Proposed/draft specifications for the various application interfaces to the IATI message queue/service bus that facilitates internal communication between IATI apps, specifically the CRM/Registry, Dashboard, Bulk Data Service, and Data Downloader. For each service interface there is an AsyncAPI specification written in YAML.

Sample Python apps

README For the sample Python apps

Updating the spec

The YAML files are the canonical copy of the spec.

There is a CI job which runs yamllint on the YAML files and PRs will fail checks if the linting fails.

The relevant yamllint command to run to check the files is:

yamllint .

If you don't have yamllint installed globally, you can install it for just this repo using pip which will make the yamllint cli available:

python -m venv .ve
source .ve/bin/activate
pip install yamllint

The documentation is autogenerated with the asyncapi program. This can be done locally using the generate-html.sh script (you need to install the asyncapi cli first), but doesn't need to be, because the autogenerated HTML docs are autogenerated with a GitHub Actions workflow whenever a change to one of the specification files is pushed.

Updating versions

Note: we keep the version numbers for all files in sync, so any change to even just a single file requires bumping the version number in all the YAML file.

Updating the HTML and Overview Diagram

The rendered HTML specs and the PNG of the overview diagram are both created as part of the CD job on merge.

About

No description, website, or topics provided.

Resources

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors