The service bus concept, or ESB layer, is not new and is not uncommon in IT practice. An ESB layer is a set of IT systems and tools whose sole purpose is the correct, timely, and uninterrupted transfer of information between systems.
In practice, a service bus works like this: through integration, the ESB periodically retrieves information from the source system; passes that information to the DWH (data warehouse) or to a message broker that has been delegated storage functions; we at KT.Team adopted the rule that each type of data should have its own storage, which weakens coupling and mutual dependency between systems and services:
so if an error occurs in one store, not the entire IT environment is affected, only the smallest part connected to that store); retrieves data from the store, usually on request from the receiving system, although other conditions can be defined; transforms the retrieved data if necessary; enriches the retrieved data with information from other stores if needed; passes the information to the receiving system in
in the form, volume, and format that suit it.
In effect, the ESB takes over the role of those same direct integrations.
But point-to-point integrations mean that CRM can provide the same customer information 10, 20, or 40 times, if that is required in 10, 20, or 40 integrations respectively. ESB retrieves the information once and distributes it to receiving systems as many times as needed.
The same diagram we showed at the beginning of the article looks like this with ESB.
One of the advantages of modern ESB systems is simplicity at every stage.
A dedicated visual interface for building integrations is provided, designed around the low-code paradigm.
It can be mastered not only by a developer, but also by a fairly advanced user, or a citizen developer.
Monitoring and logging tools make it possible to spot and isolate errors in time, which simplifies and lowers support costs.
At first glance, it looks quite appealing.
But IT colleagues will argue that implementing ESB will require reworking the entire architecture.
How to approach this, what to do at each stage to avoid critical issues, and what each stage should deliver is covered below.