In traditional IT, monitoring focuses heavily on technical infrastructure. We measure CPU usage, RAM consumption, and disk space. While this is necessary, it is not sufficient for a highly integrated enterprise.
If the CPU on the API Gateway is at 40% (which looks healthy), but a misconfigured routing rule is causing 100% of payment transactions to fail, IT might think everything is fine while the business is losing millions of Rupiah by the minute. This is why we need Business Activity Monitoring (BAM).
BAM is the real-time monitoring of business processes implemented in computer systems. Instead of asking, "Is the server running?", BAM asks:
BAM provides operations managers and executives with real-time dashboards to make immediate business decisions based on data flowing through integration middleware (like an ESB, API Gateway, or MOM).
To enable BAM in a complex, distributed microservices architecture, we must build systems that are "observable." Observability relies on three core pillars of telemetry data:
If a user clicks "Checkout" and the request touches the Gateway, Order Service, Billing Service, and Inventory Service before failing, Logs alone won't tell you where it failed easily. Distributed Tracing tracks the exact path to pinpoint the failure.
Figure 1: The Modern Observability and BAM Pipeline
To enable BAM in a microservices environment, we must link related events together. We do this by injecting a Correlation ID (or Trace ID) at the API Gateway. This unique ID is passed to every subsequent service in the HTTP headers.
When the BAM dashboard aggregates the logs, it can reconstruct the entire business transaction by filtering for that specific Correlation ID.
Modern applications do not log in raw text. They log in structured JSON formats so that tools like Elasticsearch can easily parse and query the data to build BAM dashboards.
{
"timestamp": "2026-03-16T16:30:45Z",
"level": "INFO",
"service": "billing-microservice",
"correlationId": "req-9988abc123-xyz",
"event": "PaymentProcessed",
"businessData": {
"orderId": "ORD-55512",
"amountIdr": 1500000,
"paymentMethod": "CreditCard",
"status": "SUCCESS"
},
"durationMs": 142
}
Notice how this log contains businessData. A BAM dashboard (like Kibana) can instantly run a query summing the amountIdr of all PaymentProcessed events over the last hour, displaying real-time revenue to the CEO.