SAP Cloud Application Event Hub is a service available in SAP BTP which allows us to easily distribute business events across SAP cloud applications. If you have more than one SAP cloud application configured in the SAP BTP global account System Landscape, data in one cloud application could be relevant for the other cloud application. SAP Cloud Application Event Hub provides a secure means of distributing the event data between the SAP cloud applications.
EDA in the Enterprise
Step 2SAP BTP Global Account - System Landscape
+
All the configurations related to eventing between SAP cloud applications revolve around the BTP global account System Landscape. For example:
We need to register the SAP cloud applications in the SAP BTP global account System Landscape.
We need to create a formation of type Eventing Between SAP Cloud Systems in the System Landscape
We need to define integration dependencies between the SAP cloud applications.
To access the System Landscape, navigate to your SAP BTP global account and select System Landscape from the left-hand side menu.
System Landscape
What is an SAP cloud application?
An SAP cloud application, in broad terms, is any SAP application that is hosted in the cloud by SAP. In the context of SAP Cloud Application Event Hub, a system is any SAP cloud application that is registered in the BTP global account System Landscape and that can produce or consume events via Event Hub. Examples of SAP cloud applications include:
SAP S/4HANA Cloud (Public and Private editions)
SAP Subscription Billing
SAP SuccessFactors
SAP Integration Suite (Cloud Integration)
SAP Integration Suite, advanced event mesh
SAP BTP application, e..g CAP applications deployed in SAP BTP
SAP Build Process Automation
and more…
Sample diagrams of SAP cloud applications exchanging events via Event Hub
If we visit the Sales Order event resource, we can see that there are many different event types related to Sales Orders. In the example below, we can see what the Sales Order Approval Status Changed event type looks like. In the Headers section, there is a field called type which indicates the event type that we will use when defining the integration dependency for a system.
Sales Order Approval Status Changed event
Step 3CloudEvents
+
SAP Cloud Application Event Hub uses the CloudEvents specification for the events exchanged between SAP cloud applications. Meaning, all events exchanged via Event Hub need to conform to the CloudEvents specification. This is a standard widely adopted within SAP and all SAP cloud applications produce events following this specification.
CloudEvents is a specification for describing event data in a common way. Its goal is to simplify event declaration and delivery across services, platforms and beyond! The specification is now under the Cloud Native Computing Foundation.
Below is an example of what a Choose message will look like:
You’ll notice that the example above is composed of many attributes. These attributes describe the event and are independent of the event data. Meaning that you can somehow process/inspect the event without needing to process its data. Now, let’s dive a bit into the message itself.
A Choose message is mainly composed of context attributes and data. As you briefly touched on previously, the payload in the data field will depend if it is a notification event or a data event.
Context attributes
Several attributes can be included within the message, these attributes are known as context attributes and the idea is that these context attributes can be used to describe the event. You can think of these context attributes as the header information of our event.
Let’s explore some of the attributes available.
Name
Required
Description
Example
id
โ
Identifies the event. Producers MUST ensure that source + id is unique for each distinct event.
QgEK7wzuHtqdhJwqCS+VOA==
source
โ
Identifies the context in which an event happened.
A Choose message may also include additional context attributes, which are not defined as part of the specification. These additional attributes are known as “extension context attributes” and can be used by the producer systems to include additional metadata to an event, similar to how you can use HTTP custom headers.
๐ Check out the events available for the SAP Digital Vehicle Hub in the SAP Business Accelerator Hub.
For example, in the SAP Digital Vehicle Hub Business Events package, you can see that the event is raised when a vehicle changes โ sap.dmo.dvh.Vehicle.Changed.v1 โ and it contains the extension context attribute sappassport, which is an SAP-specific tracing identifier.
A Choose message may include a payload but this is not required. If included, it will be in the format specified in the datacontenttype context attribute. Although it is not required, you will generally have a payload in messages. Below you can see an example of an event message that contains a payload.
Now, you might have noticed that the event samples shared in this tutorial are in JSON format and follow a specific format. They all contain a similar structure, some header information (metadata) describing the message (like id, type, specversion, source, type, datacontenttype) and a data node, which includes the actual payload. This is because SAP has adopted the CloudEvents specification as the common format for its systems/applications to publish events.
Step 4Systems
+
In the context of SAP Cloud Application Event Hub, a system is any SAP cloud application that is registered in the BTP global account System Landscape and that can produce or consume events via Event Hub. Examples of SAP cloud applications include SAP S/4HANA Cloud, SAP SuccessFactors, SAP Commerce Cloud, and others. Each system has a unique system ID and this information is used to identify the system and route the events to the appropriate consumer.
For example, in the screenshot below, we can see the details for an SAP SuccessFactors system registered in the System Landscape.
Systems in SLD
Three key aspects to highlight here are the ID, Namespace and the Region. The Namespace is used when defining the integration dependency for a system, as it helps identify the events produced by the system. The Region is a value that we will see in a event header sent by the SuccessFactors system. See how these three values concatenated form the source of the event header in the payload example below:
Before we can enable the exchange of events between SAP cloud applications, we need to create a formation in the BTP global account. A formation is a logical grouping of systems in the System Landscape. In this case, we are interested in the formation type called Eventing Between SAP Cloud Systems. This formation type allows SAP Cloud Application Event Hub to know which systems are allowed to exchange events.
Note: Not all systems registered in the System Landscape can produce or consume events via SAP Cloud Application Event Hub. We can see the applications supported in the SAP Help documentation and also in the systems listed in the Formation Type.
Eventing Between SAP Cloud Systems formation type
In order to enable eventing between SAP cloud systems, we need to create an Eventing Between SAP Cloud Systems formation. A formation of this type needs to include an instance of SAP Cloud Application Event Hub and then we can add systems as needed.
Navigate to the SAP BTP cockpit global account, and select Formations under the System Landscape section. Then, click on the Create Formation button.Create formation
Enter a name and select the formation type Eventing Between SAP Cloud Systems. Then, click on the Next Steps button.Formation details
Now, select the instance of SAP Cloud Application Event Hub we created earlier. Then, click on the Next Steps button.Select Event Hub instance
Finally, review the information and click on the Create button.
A new formation will now be listed in the Formations section.
New formation with Event Hub instance
Step 6Integration Dependencies
+
By defining an integration dependency for a system in a formation, we are specifying which system will be producing the event(s) and that the system that we are configuring the dependency for is interested in consuming the same. The integration dependency is defined in the context of a formation, so both systems need to be part of the same formation. SAP Cloud Application Event Hub will use this information to know which events from a producing system need to be delivered to which consuming system.
To define an integration dependency for a system, we need to select the system and then choose the Add button in the Integration Dependencies section.
Add new integration dependency
In the popup, we will select the Simplified Business Eventing Template, then choose the Next Step button.Add Integration Dependency
Now, as we define the integration dependency, we specify the following information:
Name: Enter a meaningful name for the integration dependency.
Description: A description of the integration dependency.
Publishing System Namespace: The namespace of the system that will be producing the events. We can find the namespace of a system by navigating to the System Landscape, selecting the system, and then going to the Details tab.
Event Types: The types of events that the consuming system is interested in.
Integration dependency details
Once we’ve defined all the event types that the consuming system is interested in, we can choose the Review button and then choose Add to save the integration dependency.
The new integration dependency will now be listed as an available subscription in the SAP Cloud Application Event Hub UI. We can then enable it to start the exchange of events between the systems.
Step 7Event Subscriptions in Event Hub
+
Once an integration dependency is defined for a system in a formation, this dependency will be listed as a subscription in SAP Cloud Application Event Hub. As an administrator of Event Hub, we can then enable or disable the event subscription to start or stop the exchange of events between the systems defined in the integration dependency.
In the screenshot below, we can see how a subscription is listed in the SAP Cloud Application Event Hub UI and how we can enable or disable it by toggling the Enable button.
Enable subscription
Step 8What about topics and queues?
+
For those familiar with event-driven architectures, you may have heard about topics and queues. In SAP Cloud Application Event Hub, these concepts are abstracted away from the user. We don’t need to define topics or queues to exchange events between SAP cloud applications. Instead, we define integration dependencies between systems in a formation, and once we enable the subscriptions, Event Hub takes care of the message delivery.
Step 9Further study
+
In this tutorial, we got familiar with the basic concepts required to understand the different components involved when using SAP Cloud Application Event Hub to exchange events between SAP cloud applications. Also, we explored the CloudEvents specification adopted by SAP for event messages.
To expand your learning, you might want to check out the links below and think about the open questions included in this section.
Share feedback on this tutorial or join the conversation in SAP Community.
Submit detailed feedbackDiscuss in Community
Steps
Step 1 of 9
1. What is SAP Cloud Application Event Hub?2. SAP BTP Global Account - System Landscape3. CloudEvents4. Systems5. Formations6. Integration Dependencies7. Event Subscriptions in Event Hub8. What about topics and queues?9. Further study
Joule
AI Notice
Joule is an AI assistant. Generative AI may produce inaccurate, incomplete, or biased information. Always verify important details before acting on them.
Conversations are sent to SAP-hosted large language models for processing. Do not include personal data, credentials, or confidential information in your messages.
Joule's responses are based on the SAP tutorial catalog and may not reflect the latest product changes. For authoritative guidance, consult the linked tutorials and official SAP documentation.