This architecture connects systems that are otherwise incompatible. It connects "anything to everything", by relaying messages from clients to servers, and "interpreting" messages from the language of X to the language of Y.

When should you use it?

Use it to connect incompatible legacy systems.

How does it work?

The "spoke" systems may register and unregister with the hub at any time.

When spoke X sends a message to spoke Y via the hub, the hub parses the message in X's language, converts it to some intermediate representation (if necessary), and then converts it to Y's language. The message is then sent on to system Y.

The intermediate representation is useful to restrict the number of conversions necessary.

Problems

  • Single point of failure (hub)
  • More complex (debugging)

Links