Skip to main content

Invictus for Azure architecture

An Invictus installation consists of two major parts: the Dashboard and the Framework.

Dashboard

The Invictus Dashboard provides a business user friendly UI for interacting with client integrations (commonly Azure Logic Apps), without requiring direct access to Azure. The Dashboard displays integrations as 'flows', supported by diagnostic data (here called 'flow traces') loaded via Invictus' backend infrastructure.

used terms
  • Flow: in Invictus, a 'flow' represents a definition of a logical 'message chain'. Business users create these flows via the Dashboard. Invictus' backend infrastructure imports diagnostic traces of their integrations and maps them to these flows.
  • Flow trace: in Invictus, a 'flow trace' represents a set of diagnostic traces that Invictus' backend infrastructure maps to a user-defined 'flow'. These can come from Azure Logic Apps diagnostic traces, or other places, like Azure Data Factory pipeline triggers. We even provide a HTTP import job to POST custom flow traces.

Architecture diagram


  • Flows
    • Dashboard App: the business user interacts with the Dashboard via a deployed web application. Here, users manage their 'flows'.
    • Dashboard Gateway: serves as the backend API for the Dashboard App. It shows the stored 'flows' (Cosmos DB for MongoDB) and triggers 'flow' operations (Azure Service Bus).
    • Flow Handler: based on the required 'flow' action triggered by the business user (Ignore, Resubmit, Resume) in the Dashboard App, it interacts with the deployed Azure Logic Apps on the client environment (See import flow traces via Logic App workflows for more info).
  • Flow traces
    • [type] import job: the Invictus installation provides 'import jobs' which are interaction endpoints to push 'flow traces' into the Dashboard. These come from external client resources (Azure Logic Apps, Azure Data Factory, Azure Event Hubs...). Once received, they push a canonical message into the system (Azure Service Bus).
    • Cache job: listens for new canonical messages (Azure Service Bus) and caches them as batches (Azure Blob Storage).
    • Merge job: listens for new/updated batches (Azure Event Hubs) and synchronizes the storage (Cosmos DB for MongoDB) with 'message content view' information (input/output of Azure Logic Apps, see import flow traces via Azure Logic App workflows for more info).
    • Store job: listens for new batches (Azure Event Hubs), loads referenced canonical message (Azure Blob Storage), and combines as 'flow trace' models (Cosmos DB for MongoDB). These 'flow traces' gets available via the Dashboard App to the business user.

Framework


Architecture diagram


Common integration patterns are not always built into tasks within the Azure Logic App workflow editor. The Invictus Framework provides these patterns as HTTP endpoints that client workflows can interact with.