A production engineering guide on designing scalable hierarchical topic taxonomies, wildcard queue subscriptions, and Dead-Letter Queue (DLQ) strategies across SAP BTP and S/4HANA.
In distributed enterprise systems, poorly named topics create routing chaos and make queue filtering impossible. SAP adheres to a strict hierarchical URI convention:
<org_prefix>/<source_system>/<domain>/<business_object>/<event_type>/v<version>
Examples of standard Clean Core topics:
sap/s4hana/erp/sales/order/created/v1sap/s4hana/erp/procurement/purchaseRequisition/approved/v1custom/emea/logistics/shipment/dispatched/v2Queue subscriptions use wildcards to dynamically route multiple events to single processing queues without creating separate bindings for every event action:
| Pattern Type | SAP Event Mesh | SAP Advanced Event Mesh (Solace) | Example Match |
|---|---|---|---|
| Exact Match | .../order/created/v1 |
.../order/created/v1 |
Only order/created/v1 |
| Single-Level Wildcard | .../order/* |
.../order/*/v1 (* wildcard) |
order/created/v1, order/changed/v1 |
| Multi-Level Subtree | sap/s4hana/* |
sap/s4hana/sales/> (> wildcard) |
All events in the entire sales hierarchy |
To prevent queue starvation:
maxRedeliveries = 3 on the primary queue.Q_SALES_EVENTS_DLQ) as the dead-letter target.The event-mesh-service.json configuration file governs broker access controls:
{
"emname": "enterprise-mesh",
"namespace": "sap/s4hana/erp",
"rules": {
"topicRules": {
"publishFilter": ["sap/s4hana/erp/*"],
"subscribeFilter": ["sap/s4hana/erp/*"]
}
}
}
Get the complete 400+ page guide with end-to-end architectures, testing patterns, and migration blueprints:
Unlock Complete Enterprise Suite (80% Off • €9.80) → Also available in Paperback & Kindle on Amazon ($19.99)