Files
gh-secondsky-sap-skills-ski…/references/event-mesh.md
2025-11-30 08:55:05 +08:00

12 KiB

Event Mesh - Comprehensive Reference

Source: SAP BTP Integration Suite Documentation Documentation: https://github.com/SAP-docs/sap-btp-integration-suite/tree/main/docs/ISuite Last Updated: 2025-11-22


Table of Contents

  1. Overview
  2. Core Concepts
  3. Topics
  4. Queues
  5. Event Brokers
  6. Message Clients
  7. Webhook Subscriptions
  8. Best Practices

Overview

Event Mesh is a capability within SAP Integration Suite that enables event-driven architecture (EDA) for publishing and consuming business events across your enterprise ecosystem.

Key Benefits:

  • Decouple producers from consumers
  • Enable real-time event processing
  • Scale independently
  • Support async communication patterns

Documentation: https://github.com/SAP-docs/sap-btp-integration-suite/blob/main/docs/ISuite/event-mesh-3129673.md


Core Concepts

What is an Event?

An event represents "a change in the state of data" - something that happens in a system that other systems may need to know about.

Examples:

  • Order created in e-commerce system
  • Temperature sensor reading changed
  • Customer record updated in CRM
  • Payment processed

Event-Driven Architecture (EDA)

EDA helps enterprises "act on new data in near-real time" by:

  • Publishing events when state changes occur
  • Subscribing to events of interest
  • Processing events asynchronously
  • Decoupling system dependencies

Event Messages

Events generate messages to communicate event data between systems. Messages contain:

  • Event type/topic
  • Payload (event data)
  • Metadata (timestamp, source, etc.)

Documentation: https://github.com/SAP-docs/sap-btp-integration-suite/blob/main/docs/ISuite/what-are-events-9a5bf90.md


Topics

Topics classify event messages using a hierarchical structure.

Topic Structure

Format: level1/level2/level3/.../levelN

Example:

sales/orders/created
sales/orders/updated
sales/orders/cancelled
inventory/stock/updated
inventory/stock/depleted

Topic Naming Rules

Rule Requirement
Length Maximum 150 characters
Characters Alphanumeric, underscore, period, hyphen
Segments Minimum 2, maximum 20
Separator Forward slash (/) only
Start/End Cannot start or end with /
Empty segments Not allowed

Topic Wildcards

Asterisk (*): Matches entire subtree, must be at end

sales/*          → matches sales/orders, sales/returns, etc.
sales/orders/*   → matches sales/orders/created, sales/orders/updated

Plus (+): Matches single segment

sales/+/created  → matches sales/orders/created, sales/returns/created
+/orders/+       → matches sales/orders/created, purchases/orders/updated

Topic Subscriptions

Queues subscribe to topics to receive matching events:

Subscription: sales/*/created
Matches:
  ✓ sales/orders/created
  ✓ sales/returns/created
  ✓ sales/quotes/created
  ✗ sales/orders/updated

Documentation: https://github.com/SAP-docs/sap-btp-integration-suite/blob/main/docs/ISuite/what-are-topics-and-topic-subscriptions-1712c0d.md


Queues

Queues are endpoints that persist messages for consumers.

Queue Definition

"A queue is an endpoint configured with topic subscriptions that can publish messages to and consume messages from."

Queue Types

Type Description Use Case
EXCLUSIVE Only one consumer can access at a time Serial processing, single consumer
NON-EXCLUSIVE Multiple consumers can access Parallel processing, load balancing

Queue Workflow

1. Producer → publishes message → Event Mesh
2. Event Mesh → matches topic → stores in queue
3. Queue → retains message → until consumed
4. Consumer → connects → receives message
5. Consumer → acknowledges → message removed

Queue Features

  • Subscribe to multiple topics
  • Persist messages until consumed
  • Support guaranteed delivery
  • Enable message acknowledgment
  • Allow dead-letter handling

Documentation: https://github.com/SAP-docs/sap-btp-integration-suite/blob/main/docs/ISuite/queues-99b7501.md


Event Brokers

Definition

An event broker is "middleware that mediates the communication of event messages between producers and consumers using the various message exchange patterns."

Broker Functions

  1. Receive events from producers
  2. Route based on topics/subscriptions
  3. Store for persistence
  4. Deliver to subscribers
  5. Acknowledge successful delivery

Deployment Options

Type Description
Hardware appliance Physical messaging hardware
Software On-premise software installation
Cloud SaaS SAP Event Mesh service

Message Exchange Patterns

Pattern Description
Publish/Subscribe One-to-many distribution
Point-to-Point One-to-one delivery
Request/Reply Synchronous with response

Documentation: https://github.com/SAP-docs/sap-btp-integration-suite/blob/main/docs/ISuite/what-are-event-brokers-f72428f.md


Message Clients

Message clients connect applications to Event Mesh.

Creating a Message Client

Via BTP Cockpit:

  1. Navigate to Event Mesh service
  2. Create message client instance
  3. Configure queue subscriptions
  4. Generate credentials

Via CF CLI:

cf create-service enterprise-messaging default my-event-mesh \
  -c '{"emname": "my-client", "options": {"management": true, "messaging": true}}'

Client Configuration

{
  "emname": "my-message-client",
  "namespace": "company/department/app",
  "rules": {
    "topicRules": {
      "publishFilter": ["${namespace}/*"],
      "subscribeFilter": ["${namespace}/*", "shared/*"]
    },
    "queueRules": {
      "publishFilter": ["${namespace}/*"],
      "subscribeFilter": ["${namespace}/*"]
    }
  }
}

Documentation: https://github.com/SAP-docs/sap-btp-integration-suite/blob/main/docs/ISuite/configure-a-message-client-867c517.md


Webhook Subscriptions

Enable HTTP-based event delivery without persistent connections.

How Webhooks Work

1. Event published → Event Mesh
2. Event Mesh → matches subscription
3. Event Mesh → HTTP POST → Webhook URL
4. Webhook endpoint → processes event
5. Endpoint → returns 2xx → acknowledged

Webhook Configuration

Parameter Description
URL Target endpoint for events
Topic subscription Topics to receive
Authentication Basic, OAuth, Certificate
Retry policy Retry on failure

Webhook vs Queue Consumption

Aspect Webhook Queue
Connection HTTP push Protocol connection
Persistence Limited Full
Ordering Not guaranteed Guaranteed
Throughput Lower Higher
Simplicity Higher Lower

Documentation: https://github.com/SAP-docs/sap-btp-integration-suite/blob/main/docs/ISuite/webhook-subscriptions-58e3729.md


Integration with Cloud Integration

AMQP Adapter

Connect iFlows to Event Mesh using AMQP adapter.

Sender Adapter (consume events):

Adapter Type: AMQP
Transport Protocol: WebSocket
Host: messaging-service-host
Queue Name: queue:my-queue
Authentication: OAuth2 Client Credentials

Receiver Adapter (publish events):

Adapter Type: AMQP
Transport Protocol: WebSocket
Host: messaging-service-host
Topic: topic/my/event
Authentication: OAuth2 Client Credentials

Event-Driven iFlow Pattern

┌──────────────┐    ┌────────────────┐    ┌──────────────┐
│  Event Mesh  │ →  │  iFlow (AMQP)  │ →  │   Backend    │
│    Queue     │    │   Processing   │    │    System    │
└──────────────┘    └────────────────┘    └──────────────┘

Best Practices

Topic Design

  1. Use hierarchical structure

    organization/domain/entity/action
    acme/sales/order/created
    
  2. Be specific but not too granular

    • Good: sales/orders/created
    • Too broad: sales/event
    • Too specific: sales/orders/created/usa/region1/store5
  3. Use consistent naming conventions

    • lowercase
    • no spaces
    • descriptive names

Queue Design

  1. One queue per consumer type

    • Order processing queue
    • Analytics queue
    • Audit queue
  2. Use dead-letter queues

    • Handle failed messages
    • Enable retry analysis
  3. Set appropriate TTL

    • Time-to-live for messages
    • Prevent queue overflow

Error Handling

  1. Acknowledge after processing

    • Don't acknowledge before work is done
    • Use transactions when needed
  2. Implement retry logic

    • Exponential backoff
    • Maximum retry count
  3. Use dead-letter handling

    • Route failed messages
    • Enable investigation

Glossary

Term Definition
Event Change in system state
Topic Hierarchical event classification
Queue Persistent message endpoint
Subscription Topic pattern for queue
Producer Application publishing events
Consumer Application receiving events
Broker Middleware routing events
Webhook HTTP-based event delivery

Documentation: https://github.com/SAP-docs/sap-btp-integration-suite/blob/main/docs/ISuite/glossary-for-event-mesh-501ba2d.md