Backend Development 8 min read

Reducing Integration Cost of a Message Bus through Dependency Transfer

This article examines how to lower the overall cost of integrating a message bus into existing legacy systems by shifting dependencies from the bus to a simple HTTP endpoint, using a registry and proxy service to enable passive message delivery.

Architect
Architect
Architect
Reducing Integration Cost of a Message Bus through Dependency Transfer

The message bus currently offers a Java SDK and an HTTP bridge for other languages, satisfying most technical requirements but posing challenges for business integration with legacy systems; this article discusses how to minimize the total cost of adopting the bus.

Both SDK and HTTP bridge approaches introduce dependencies such as the SDK JAR, API calls, and learning overhead, as well as maintenance and bug‑risk costs.

To transfer these dependencies, the article draws on the Spring IoC concept, proposing a shift where third‑party systems no longer need to actively depend on the bus.

Third‑party components depend on the bus because they must actively produce or consume messages; the bus itself does not know message content or timing.

The key question is whether the bus can push messages to third‑party systems without them initiating a connection, distinguishing between passive receipt and a push‑model that still requires API calls.

The proposed solution is for the third‑party system to implement a dedicated HTTP request handler (e.g., a controller or servlet) that receives messages, allowing the bus to write to it via the platform‑agnostic HTTP protocol.

Implementation involves a registry where a third‑party registers its endpoint when requesting a queue; a cron‑based consume‑proxy service periodically scans the registry, pulls messages from the queue, and forwards them to the registered HTTP endpoint.

After this setup, the third‑party only needs to understand the message format and no longer actively communicates with the bus, reducing coupling.

Risks include the HTTP request‑response model potentially blocking the bus if the third‑party is unresponsive; mitigations include asynchronous handling, strict interface audits, best‑effort and degradable proxy services, and watchdog mechanisms to remove faulty endpoints.

The approach lowers dependency for consumers, especially in Pub/Sub scenarios with many consumer web systems, though it does not reduce dependency for producers.

Applicable scenarios involve systems where consumers have no strict timing requirements and are web‑based, enabling a passive push model for message consumption.

Source: CSDN (yanghua_kobe) – http://vinoyang.com/2015/05/15/消息总线扩展之主动转发/

backend architectureIntegrationmessage busdependency transferHTTP endpointproxy service
Architect
Written by

Architect

Professional architect sharing high‑quality architecture insights. Topics include high‑availability, high‑performance, high‑stability architectures, big data, machine learning, Java, system and distributed architecture, AI, and practical large‑scale architecture case studies. Open to ideas‑driven architects who enjoy sharing and learning.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.