Save A Lot, a retail giant in the United States and a Jade Global client is now witnessing an onset of modernization in a large part of its IT system. Jade Global has been a strategic partner of Save A Lot for quite some time. Recently, Jade Global successfully executed the 1st installment of the IT transition project to change existing banks to new banks for Save A Lot. There were major changes involved in Oracle Fusion and the Middleware - that consists mainly of Boomi and Azure as the technology stack. Integration between new Banks and Save A Lot Finance systems was implemented.
This blog focuses on designing one of the middleware components – Azure Service Bus, which was newly adopted for Save A Lot IT technical landscape.
About Azure Service Bus:
What is Azure Service Bus: Microsoft Azure Service Bus is a fully managed enterprise integration message broker. The messaging service is hosted on the Cloud and is available as Azure Cloud Service. It is a readymade framework for messaging with all needed features. The message is used to transfer data or state between applications. Prima moto of Service Bus is to decouple applications and services using a middle layer framework. Azure Service Bus offers a reliable and secure platform for asynchronous transfer of data and state.
Technical Architecture having Azure Service Bus – Messaging example
Where it is used: There are many business cases where Azure Service Bus can be used, highly suitable in cases where we need a proven & ready framework for reliable integration between applications like Internal IT, B2B applications, Cloud Applications, etc.
Application Integration using Azure Service Bus
Technical Usage: The Azure Service bus service is available as rest API for non-Azure applications. For Azure Applications, wrappers are available to directly receive message objects and react on them, for example – to raise a message once any new file is created in a directory; it is just a matter of configuration. No coding is needed.
Technical Details: There are different ways messaging can be configured, viz: Queue and Topic.
Queue as Messaging Topology: Azure Service Bus supports queue topology where we have one sender and one receiver; it is a point-to-point communication method. Messages are sent to and received from queues.
Queues store messages until the receiving application is available to receive and process them. Messages in queues are ordered and time-stamped on arrival. Once accepted, the news is held safely in redundant storage. Messages are delivered in pull mode, only delivering messages when requested.
Topic as Messaging Topology: Topic supports one to many communication paths for the same message. Topics can have multiple, independent subscriptions. A subscriber to a topic can receive a copy of each message sent to that topic.
Additionally, you may not want individual subscriptions to receive all messages sent to a topic. If so, you can use rules and filters to define conditions that trigger optional actions. You can filter specified messages and set or modify message properties.
Advanced Features of Azure Service Bus Messaging: There are many features available from the Microsoft Azure Cloud, viz: Message Sessions, Auto Forwarding, Dead Letter Queue, Scheduled Delivery, Batching, Transactions, Peek only, Receive and Delete, etc.
Azure provides a robust Messaging Service for its wide variety of architecture solution choices, as shown below:
Save A Lot Implementation: Save A Lot uses Azure and Boomi as middleware between Bank FTP service and Save A Lot Oracle Fusion-based Finance Systems. Boomi connects directly with Bank services and inbounds/outbounds the file (containing payment data, for example) and uses Azure as source/destination.
Oracle is then connected to Azure location for its transactions for those files for both inbound and outbound cases. Azure is used as the staging area for files and a way to decouple Boomi and Oracle. Decoupling here helps to provide scalability and debugging.
The flow of Bank Integration
Outbound Integration: Save A Lot uses Azure Service Bus to communicate with Boomi about new file arrival from Oracle, which then initiates transfer of the file to Bank.
Inbound Integration: For inbound files from Bank, Boomi uses Azure Storage as staging, and a scheduled process at Oracle picks from the staging area.
Azure messaging is also used to initiate the Boomi process to transfer files to other systems for inbound files apart from Oracle. Publish and Subscribe as messaging topology provides scalability for other systems to listen to the message and get the file.
Error Handling Feature– Message Peek: It was found that the Message Peek feature of Azure Service Bus could be used at Boomi to detect file arrival initially and deleting the message only after a successful file transfer. Hence, this feature helps provide error handling for many scenarios that are just ready to use.
Hence, ready framework Azure Service Bus has facilitated integration messaging to detect new file creation and react to take it further to Bank service endpoint. The error handling feature of Azure service bus also saves development efforts and provides reliable integration.
About the Author
Amit Manchanda: Senior Solution Architect, Technology Services.
Amit Manchanda is a Senior Solution Architect for Application Development practice. He has been leading DevOps solutions for various clients among other projects related to application development related to Java and ServiceNow. Senior Solution Architect with 14 years of experience in Software Development with high quality and innovative ideas. Expertise in Java, DevOps, Web Development, Architecture and Project Management.