Deploy Service Bus Integration
Service Bus integration of the Anthology Student and Anthology Reach products requires multiple resources as listed below.
Type | Resource Description | Responsibilities |
---|---|---|
Common resources |
Common resources are deployed irrespective of products when a tenant (client) is provisioned. These resources include: • Azure Service Bus (ASB) During the deployment of Anthology Student, the SCM team adds a record to the |
The SCM team deploys and maintains the common resources. |
Publisher resources |
Publisher resources are the resources required to publish data. These resources do not need to know who consumes the published data. Publisher resources are deployed using the pipeline meant for the product to deploy its productized integration resources. These resources include: • ASB topics • Azure functions Publisher resources are included in each release of the product/product integration. For Anthology Student changes, when the data is published using business events/technical events, a configuration entry is added to the |
The SCM team deploys the publisher resources. The publishing product teams maintain the publisher resources. |
Subscriber resources |
Subscriber resources are required to subscribe to the data published. These resources are deployed using the pipeline meant for the product to deploy its productized integration resources. These resources include: • ASB subscriptions • Azure functions Deployment of these resources is included in each release of the product/product integration. |
The SCM team deploys the subscriber resources. The subscribing product teams maintain the subscriber resources. |
Common Pipeline
The Common Pipeline deploys the shared resources to the Anthology Cloud.
Shared resources include:
- Database Server
- Service Bus
- Database
- Virtual Network
- Azure Storage
- Azure Cache
The Common pipeline also adds an entry to the Core.AzureServiceBusNamespace
table with details about the Azure Service Bus connectivity.
Student Pipeline
The Anthology Student pipeline deploys:
-
Anthology Student function apps to the Anthology Cloud
-
Anthology Student resources to the respective resource groups in the Anthology Cloud
The Student pipeline also adds an entry to the Core.IntegrationDisclosure
table about the entity, event, and topic details.
Reach Pipeline
The Anthology Reach pipeline deploys:
-
Anthology Reach function apps to the Anthology Cloud
-
Anthology Reach resources to the respective resource groups in the Anthology Cloud
The Reach pipeline also adds an entry to the Core.IntegrationDisclosure
table about the entity, event, and topic details.
DB Update Sequence
The sequence of database updates is as follows:
-
The SCM team deploys the integration pipeline to the Azure Service Bus.
-
The Azure Service Bus pipeline adds an entry to the
Core.ServiceBusNamespace
in the Anthology Student database. -
The integration pipeline deploys topics to the Azure Service Bus Topic pipeline based on the integration needs.
-
The Azure Service Bus topic pipeline adds an entry to the
Core.IntegrationDisclosure
table in the Anthology Student database.
Naming Conventions
-
Azure Service Bus topics and subscriptions:
-
Topics:
“anth-<Business/Functionality short form>-<Source product short form>-<Resource short form>-<Resource version number>”
The short form for a topic is “sbt”.
Example:
“anth-stucorstschg-stu-sbt-01”
-
Subscriptions:
“anth-<Business/Functionality short form>-<Source product shortform>-<Destination short form>-<Resource short form>-<Resource Version number>”
The short form for a subscription is “sbts”.
Example:
“anth-stucorstschg-stu-rch-sbts-01”
-
-
Azure functions:
Since Azure functions are at the subscription level, we can add the destination to identify it clearly.
“anth-<Business/Functionality short form>-<Source Product short form>-<Destination short form>-<Resource short form>-<Resource version number>”
The short form for function is “func”.
Example:
“anth-stucorstschg-stu-rch-func-01”
-
Business/functionality:
"anth-<Business/Functionality short form>-<Source product short form>-<Destination short form>-<Resource short form>-<Resource version number>"
The business/functionality naming is very trick due to the following limitations:
-
Maximum size of any messaging entity path: queue or topic: 260 characters.
-
Maximum size of any messaging entity name: namespace, subscription, or subscription rule: 50 characters.
Our recommendation is to have three characters from each word of the full meaningful phrase of the business functionality.
Example: “Student Course Status change” would translate to
stucoustschg
. -
-
Ownership:
-
Team owning the business/functionality naming: Product team.
-
Team owning overall naming of resources associated with products: Product Development.
-
Team owning the naming of common resources using the conventions: SCM.
-
ASB Topic Atomicity
-
An ASB topic is considered as a data publishing medium in Anthology for all disconnected integrations.
-
Each topic holds the data of a business process, having multiple subscriptions.
-
Atomicity of an ASB topic is the business process.
For a scenario where...
• a given business process has multiple stages and
• each stage has a business event and
• a sequencing of these stages is required and
• all the data related to the business process be available at a single place and
• with the chronological order of the event execution,
... our recommendation is to have a single ASB topic for the business process and have all the stages and events publish data to the same topic in chronological order.
The advantage of the above convention is to allow the subscribers to expect and prepare for the data.
Anthology Student Deployment Flow
The following image depicts the deployment flow for Anthology Student clients.
Anthology Reach Deployment Flow
The following image depicts the deployment flow for Anthology Reach clients.