Setup version 1.4 and onwards

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:
Async Caller chain of requests

  1. An adapter or other service provider uses the business api that exposes the async functionality
  2. The sending system asks Nexus Async Caller to handle an asynchronous request
  3. Async Caller puts the request on a storage queue in the customer's Azure environment
  4. 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

  1. Create an Azure Function App, either with consumption plan or app plan, depending on your needs.
  2. Set the app setting "AzureWebJobsStorage" to the connection string of the Azure Storage account
  3. 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