From Spaghetti to Flexible Architecture in 5 Steps: Stages of Implementing an ESB Layer

Transition from spaghetti architecture to flexible IT architecture: how to simplify integrations, improve manageability and scalability of business systems

  • ESB for transparent, easy-to-maintain integrations
  • Five Stages of ESB Layer Development and Implementation
  • 1. Choosing where to host the ESB
  • 2. Choosing an integration development environment

26.4.2023 We explain the stages a company needs to go through to replace direct point-to-point integrations with integrations through the ESB layer. ESB for transparent, easy-to-maintain integrations

Five Stages of ESB Layer Development and Implementation

How much development time will be required? Article published on Medium Reading time: 7 min.

When a company's IT architecture is only beginning to take shape, it is difficult to estimate its future scale.

So by the time it grows from two 1C systems for accounting and warehouse management to 30 or 40 systems, the IT team has to work with a historically formed star-shaped architecture that is also, and not by accident, called spaghetti. In this article, KT.Team experts explain the stages a company needs to go through to replace direct point-to-point integrations with integrations through the ESB layer.

ESB for transparent, easy-to-maintain integrations

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.

Five Stages of ESB Layer Development and Implementation

When we talk about five stages, we are omitting a few things.

The number five refers directly to the number of stages in ESB layer implementation.

But they are preceded by an important and substantial stage of solution and integration design.

At this zero stage, you need to describe which systems are currently part of the architecture and what their relationships and interdependencies are.

You need to identify the entities and data exchange flows that already exist.

At this point, you risk getting trapped by terminology. For example, across different systems and processes, even the simple term "item master" can mean different things: SKU plus name; the content of a marketplace product card; stock balances...

So you will have to dig not only into the names of entities but also into their content, look for overlaps, sources, and conflicts, and most likely redesign information routes.

You can handle this stage on your own or bring in an IT consultant to get an outside perspective.

But if you choose the second path, we would recommend working with consultants who have experience successfully building working architectures with an ESB layer.

Then the consultant's conclusions and recommendations will be more practical.

1. Choosing where to host the ESB

We suggest starting with this stage before choosing the system itself. Why?

Different products work in different paradigms

For example, n8n is suitable only if you are willing to work through the cloud. WSO2 can also be installed on the company's dedicated servers. And if, for any reason, it is critical for you to have the ESB layer on your own servers, such as when industry security requirements demand it, n8n is not suitable for you by definition.

If the hosting location is not dictated by industry standards or your internal requirements, answer the following four questions for yourself.

Is a multiple-fold scaling of the company or IT architecture planned over the next three years?

A dedicated server gives you more freedom in this regard.

Is the fastest possible ESB setup important to you? A cloud-based option offers faster deployment and configuration.

How high are the data security requirements?

A server is better protected against attacks and data loss.

Is storage cost an important constraint?

Owning your own servers is a more expensive option.

Assess where AI can deliver impact in your process

2. Choosing an integration development environment

There are dozens of systems on the market that can be used to build integrations.

Almost all of them have a visual interface and are built on a low-code or no-code paradigm.

But each such system has its own functional characteristics that determine whether it belongs in the pool of suitable or unsuitable systems. For example, Talend does not include the ability to create a reusable subprogram from a piece of integration.

If your architecture assumes that a certain action repeats across many integrations, such as transforming data from format No. 1 to format No. 2, it is better to choose a system that supports creating and reusing subprograms.

If your architecture includes products from the Salesforce ecosystem, it makes sense to consider Mule ESB.

This system is also part of the Salesforce software lineup, so integrating it with other products will be somewhat easier.

If you are restricted to using only domestic software, the products listed above will not be suitable.

It is better to consider the CIS Datareon.

Do not forget about the products' pricing model either.

For example, with Mule the integration platform itself is open source and provided free of charge, while connectors for working with systems are available only on a paid basis. WSO2, on the other hand, offers an annual license.

We will cover the cost of integration and software ownership in more detail in another article that will appear in the blog.

3. Choosing the component stack

  1. In addition to the integration development environment, the ESB layer should include monitoring and logging systems as well as a data store. Many ESB systems have built-in monitoring and logging tools, along with a defined list of preferred compatible products.

  2. Therefore, it makes sense to choose components only after you have decided on the development environment.

  3. Sometimes we encounter cases where, during the stack selection and ESB implementation stage, the client suggests skipping monitoring and logging to reduce project costs or speed up the MVP.

  4. However, KT.Team specialists do not recommend using such solutions, because monitoring and logging systems help detect and isolate errors in time.

  5. If something goes wrong, and as you know, that happens even in the most carefully designed architecture, you will be able to pinpoint the issue, fix it, and prevent it from happening again.

4. Configuring and implementing the ESB layer

At the zero stage, you examined how data flows looked in the old IT architecture (the as-is model), and now your team needs to configure the new architecture (the to-be model).

What is important to consider at this stage

First and foremost, do not fall back into the trap of terminology and familiar processes.

Attempts to reproduce everything in full detail in the new architecture are dangerous, because it will inherit not only the successful decisions but also accumulated mistakes, conflicts, and process misalignment. Second, do not try to force the tool to fit familiar paradigms.

Even in practice with a low-code tool, developers still wrote integrations in code instead of using the visual environment.

Therefore, experience with low-code, or better yet, experience in building integrations correctly, will be an advantage for the implementation team.

Since there are not many specialists in this field, and hiring someone in-house for a short-term project is not rational, it makes sense to turn to an integrator.

At a minimum, this will save you the time that would otherwise be spent getting familiar with the system and training the team, and it will help avoid beginner mistakes.

The implementation stage itself includes: deploying the integration platform and other ESB layer components on the company's servers, if this option is chosen, or connecting the integration platform and other components to your architecture; planning integration scenarios for systems, that is, what the ESB layer should retrieve from each system, where to store the information, which triggers to use for retrieval, and how to transform and enrich this information in each

from scenarios, which system to send it to and how often; implementing integrations according to the scenarios defined at the previous stage; debugging and troubleshooting.

If the pre-project work for ESB implementation was organized and carried out properly, the implementation stage itself will not take much time.

In our experience, one to three months is enough to begin working in the new architecture for at least some processes. Otherwise, implementation can drag on for six months, a year, or even longer, and most of that time will be spent reworking integrations.

5. Documentation

This stage partly runs in parallel with ESB implementation and configuration. The implementation team prepares detailed documentation on how to build integrations: where to go to perform the needed action, which blocks, elements, and subprograms to use, how to verify that integrations are working, and so on. This manual will make it possible to configure new integrations and maintain existing ones independently of the implementation team, including by experienced users who are not developers.

How much development time will be required?

According to KT.Team's experience, developing and implementing an ESB layer typically takes about a month and a half before MVP launch. We do not include the analysis stage here, since its duration depends on the complexity of the current and future architecture.

Discuss the article: From Spaghetti to Flexible Architecture in 5...

Send via: