Sometimes Boomi Atom Processes need to communicate with external services in the middle of process execution. Anything from pulling data from a database, calling a service for a credit check, or validating the status of a warranty claim for processing a product return. These are synchronous types of calls, meaning the Boomi Atom Process needs to wait for the response before proceeding.

On May 15th 2021, Boomi released the latest version of the Solace connector to support this type of interaction: support for a Request Action in the Solace Connector Shape.

In this codelab, you will learn how to use the Solace Connector for Boomi Request Action.

diagram-overview.jpg

  1. A general understanding of event-driven architecture (EDA) terms and concepts.
  2. Basic knowledge of the Boomi GUI and deployments. A good place to start would be the Getting Started with Boomi and Solace Codelab.

After you finish the Getting Started with Boomi and Solace codelab, you'll have the following

Positive : If you're new to the world of events, welcome! Solace has extensive blogs focusing on event-driven architecture and development.

In this example, we will be using the new Request Action within the Solace Connector Shape to perform a blocking synchronous request/reply in the middle of a Boomi Process. We will be doing the following:

  1. Use Solace to handle the request which means the document that we feed to the Solace Connector Request will be published onto a topic.
  2. The replying service will consume that document, do something with it.
  3. Reply to a dynamically created ReplyTo topic with the response and the CorrelationID (also dynamically created by the Solace Connector).

We are not going to create a service replier the first time through. We are going to use a Solace web GUI to perform the reply so we can better see the inner workings.

Boomi Request - Solace Shape

  1. The Boomi Process will be setup to publish a request to the topic T/boomi/request
  2. You will configure a Solace Broker to handle the request
  3. You will use the Try Me feature of the Solace Web GUI to function as a Javascript client listening to T/boomi/request
  4. You will see the request come in and manually respond using the Try Me feature (copy and paste the generated ReplyTo topic and correlation ID)
  5. The Solace Broker will route the reply to the waiting Boomi Process

POSITIVE : This is the most basic implementation of this pattern. Queues, ACL's and other Solace features can be used for persistence, access lock down and much more.

Let's get started!

The first thing we will do is create a simple Process in Boomi that makes a request via a publication to a Solace topic

Create a new Process

Boomi Request Process Create

Positive : Remember, we will be using topics only in this example. This means there is nothing to create/configure on the Solace side as topics are dynamic. In this case our topic name is T/boomi/request

Try me config

Positive : Note that the first time through this exercise, its very likely your Boomi Process will timeout, as you will be reading along. Never fear, you can simply send a new message by starting a new test and then follow along with the steps to publish a reply. You can do this as many times as you like.

Positive : Can Solace support mid-Process requests? Yes, it can!

What did you learn?

We now have a native way for Boomi Atom Processes to communicate with external services in the middle of process execution by using what you learned in this codelab:

  1. How to configure and deploy the Solace Connector using the Request Operation.
  2. How to use that to request data/processing from an external service
    • Note: This service could reside as another Process on the same Boomi Atom, another Booomi Atom in the same DC, another Boomi Atom half way around the world. The only requirement is that is can connect to the Solace Event Mesh.
  3. How to use Solace Try-Me to test successful operation of the new Solace Connector Operation.