Nexus Async Caller configured with SchemaVersion 1
In version 1.4 of Nexus Async Caller support for SchemaVersion 1
is introduced, which gives support for multiple queues and an easier configuration setup.
Components
To get Async Caller going you need
- An Azure Storage account
- An Azure Function App
- Nexus configuration
Flow
The chain of requests looks like this:
- An adapter or other service provider uses the business api that exposes the async functionality
- The sending system asks Nexus Async Caller to handle an asynchronous request
- Async Caller puts the request on a storage queue in the customer's Azure environment
- A function in the customer's Azure environment is triggered and makes the request to the receiving system
Nexus configuration
Use this configuration variant:
{
"SchemaVersion": 1,
"ConnectionString": "...",
}
Queue names are fixed ("async-caller", "async-caller-1", "async-caller-2", ...) and automatically handled (no need to setup configuration for them).
See Configure Async Caller on how to setup Async Caller in the customer's environment.
Azure function app
- Create an Azure Function App, either with consumption plan or app plan, depending on your needs.
- Set the app setting "AzureWebJobsStorage" to the connection string of the Azure Storage account
- Setup a CI/CD deployment flow based on the GitHub repository Nexus.Link.AsyncCaller.Distribution
- New releases happen on the master branch, so setup a CI-trigger that builds the project
- In your non-production environments, we suggest you have continuous deploy of the function app. And in production manual deploy.
The repo contains a number of Azure functions, each listening to a queue (the "standard" queue and prioritized queues). When receiving a message, the function will distribute the request and handle any errors, such as retries when receiving system is down.
Migration guide SchemaVersion 0 → 1
When switching to SchemaVersion 1
, new queue names will be used on the Azure Storage.
- Deploy the new function app with support for multiple queues
- Keep the old function app listening to the old queue until that queue is empty
- Remove the old function app