PART 06 OF 07 · INTEGRATION DECISION

Choose the interaction before the transport

Decision guide comparing batch, API, messaging, and Kafka before combining them in a governed EBX hybrid architecture.

THE EVENT JOURNEY · ANIMATED SUMMARY

01Business needfreshness + fan-out
02Patternbatch, API, messaging
03Kafka fitreplay + decoupling
04Hybridgovern + distribute
Chapter takeaway: Kafka complements batch, APIs, and commands; it does not replace every integration style.

Master data is rarely the highest-volume data in an enterprise, but each approved change can have unusually wide impact. A customer status, product hierarchy, supplier classification, legal entity, location, or reference-code update may need to reach operational applications, analytics, search, fraud controls, data products, and AI systems. The architectural question is therefore not simply how fast can EBX send data? It is which systems need which change, how soon, with what proof, and how will they recover?

Start with the interaction, not the technology

Batch files, synchronous APIs, work queues, and retained event streams solve different problems. A mature EBX estate normally uses more than one. TIBCO EBX provides built-in REST and SOAP/WSDL data services, XML and CSV import/export, Java APIs, scheduled tasks, and programmatic services. Kafka should complement those boundaries, not erase them.

PatternUse it whenPrimary strengthPrimary risk
Batch: CSV, XML, SQL or controlled filesInitial load, migration, reconciliation, bulk correction, periodic distributionEfficient bulk movement with a visible control totalStale data between runs; partial reruns and file lineage can become manual
REST or SOAP/WSDLA caller needs a command, query, validation, or immediate success/failure responseClear synchronous contract and direct authorizationRuntime and availability coupling between caller and EBX
Queue or enterprise messagingOne worker should perform a command; routing, priority, expiration or request/reply mattersAsynchronous work distribution and broker-directed deliveryHistorical replay and adding new subscribers may require extra design
Kafka event streamMany independent consumers need durable change facts, replay and per-entity orderRetained log, independent consumer positions and scalable fan-outGreater platform, schema, security and operational responsibility

Why near-real-time integration for master data?

Near-real-time does not mean that every keystroke becomes an event. The useful boundary is usually a governed state transition: a workflow approval, validated record commit, golden-record merge, hierarchy publication, or reference-data release. Publishing after that business boundary lets downstream systems react quickly without turning EBX into a synchronous dependency for every consumer.

AUTHORITATIVE CHANGEEBX approval + commitCustomer C-1042 becomes ACTIVE
Outbox → versioned event
CRMRefresh account state
ERPPermit fulfilment
AnalyticsUpdate governed dimensions
AI / SearchRefresh permitted context
One committed master-data fact can be consumed independently. Consumers do not have to be online at the instant EBX commits the change.

Consider an approved supplier-risk classification. A synchronous design might make EBX call procurement, payments, analytics, and notification services in sequence. One slow endpoint extends the EBX transaction or creates a partial-success problem. A nightly export avoids that coupling but leaves the enterprise using stale risk data. An outbox-backed event lets EBX commit its authoritative state once, publish the change reliably, and let each consumer process at its own pace.

Near-real-time distribution is justified when freshness has measurable value: preventing an invalid order, applying an approved hierarchy before the next transaction, removing a restricted supplier, or refreshing a governed AI retrieval index. If the consumer only needs a complete month-end snapshot, batch remains the simpler and often safer answer.

Why not call every consumer through REST?

REST and SOAP are excellent for commands and queries. Use them when the caller needs an immediate answer: retrieve the current customer, validate a code, submit a stewardship request, or invoke a controlled EBX operation. They become awkward as the only distribution mechanism when one EBX change must reach many consumers.

  • Availability coupling: the publisher must decide what happens when a consumer is slow or unavailable.
  • Fan-out ownership: EBX or an orchestrator must know every destination.
  • Recovery: a failed consumer needs a durable retry record and a way to catch up.
  • New consumers: adding a subscriber may require republishing history or extracting a new snapshot.
  • Transaction ambiguity: an HTTP success does not make the EBX commit and the remote side effect one atomic transaction.

Use an API to ask EBX for current state. Use an event to announce that governed state changed. Many architectures need both.

Why Kafka rather than RabbitMQ or JMS?

JMS—now Jakarta Messaging—is an API specification for Java messaging, not a broker. It defines queue and publish/subscribe concepts implemented by providers. RabbitMQ is a broker supporting queues, exchanges, routing, acknowledgements, quorum queues, and also retained streams. The comparison must therefore be made against the required semantics and the products your organization can operate.

RequirementKafka tends to fitRabbitMQ/JMS-style messaging tends to fit
Meaning of the messageA durable fact: customer.approved.v1A command or unit of work: recalculate-credit
ConsumptionMany independent groups maintain their own offsetsOne worker consumes from a queue, or each subscriber owns a subscription
HistoryRetention and replay are first-class design concernsMessages commonly leave a queue after acknowledgement; replay needs deliberate retention or a stream feature
OrderingStable record keys provide order within a partitionQueue order is affected by multiple consumers, priority and redelivery; broker-specific patterns can preserve it
RoutingUsually topic and key based; consumers filter or transformRich exchange, binding, selector, priority and expiration patterns
EcosystemEvent streaming, CDC, stream processing, lakehouse and analytics integrationsEnterprise application messaging, application servers, task distribution and request/reply

Choose Kafka when replay, independently evolving consumers, retained history, per-master-key ordering, rebuilds, and the data-platform ecosystem are central requirements. Choose a queue or JMS provider when the principal requirement is command delivery, work sharing, priority, expiration, request/reply, or alignment with an existing application-server messaging platform. RabbitMQ Streams narrows part of this distinction by providing an append-only, replicated and repeatedly readable log, so a current product-level evaluation is still required.

01EBXGovern, validate, approve and commit master data
02OutboxRecord the event in the same EBX transaction
03KafkaRetain versioned facts keyed by master identity
04ConsumersApply idempotently and advance independently
05ReconciliationCompare snapshots, ledgers and business totals
Events improve freshness; scheduled reconciliation proves completeness. REST remains available for commands and current-state queries.
  1. Govern in EBX. Publish only after the appropriate validation and workflow boundary.
  2. Write an outbox record transactionally. Do not make a Kafka call inside the master-data transaction and call the two systems atomic.
  3. Publish a purpose-built contract. Include event ID, type, schema version, operation, stable master key, occurrence time, source commit identity, and an allowlisted payload.
  4. Key by business identity. Changes for the same customer, product, supplier, or reference entity normally use the same key.
  5. Make consumers idempotent. Store the event ID or topic-partition-offset with the destination update.
  6. Retain periodic reconciliation. Compare EBX authoritative state, outbox delivery, Kafka offsets, consumer ledgers, and downstream business totals.

When Kafka is the wrong answer

  • Only one destination exists and it already supports a reliable, idempotent API.
  • The requirement is a synchronous command whose caller cannot continue without a response.
  • A daily governed snapshot satisfies the freshness objective.
  • The organization cannot own topic governance, schemas, access, monitoring, retention, upgrades and incident response.
  • Events would expose broad EBX records rather than a minimized, purpose-specific contract.
  • No replay, independent consumer, or retained-history requirement exists.

Kafka also does not replace EBX as the system of record, make downstream databases transactionally consistent, or eliminate duplicate delivery. It gives the architecture a durable distribution log; application correctness still comes from contracts, idempotency, reconciliation, security, and tested recovery.

Architecture decision record

Before selecting the transport, write down:

  • The business event and the exact EBX approval or commit boundary.
  • Required freshness, expected rate, burst, payload size, and growth.
  • Every consumer, whether it needs a command or fact, and whether it requires history.
  • Ordering unit, delivery expectation, retention, replay and deletion requirements.
  • Failure ownership, retry limits, quarantine, RPO, RTO and reconciliation evidence.
  • Data classification, field allowlist, schema owner, compatibility policy and access review.
  • Why batch, REST/SOAP, queue messaging, and Kafka were accepted or rejected.
  • The operating team, platform cost, exit strategy, and proof from a failure rehearsal.

Decision

For EBX master-data change distribution, select Kafka when a committed governed fact must reach multiple independent consumers within a bounded freshness objective and those consumers need durable catch-up or replay. Keep REST/SOAP for commands and current-state queries. Keep batch for initial loads, bulk exchange, and reconciliation. Prefer RabbitMQ or a JMS provider when the workload is primarily task or command messaging and its routing semantics and operational platform are the better fit.

The next article turns this decision into code with the EBX ps-mdm Kafka implementation guide.

Primary references

CHAPTER KNOWLEDGE CHECK · DRAG, DROP, OR TAP

Choose the integration pattern

Match the EBX business interaction to the simplest pattern that satisfies it.
0/4matched
COACHChoose a scenario, then match it to the best answer.