Two systems meant to exchange data rarely speak the same language. The inventory management system keeps article numbers with leading zeros, the shipping program strips them away. Time recording delivers hours as a decimal figure, payroll expects hours and minutes. As long as only two systems are involved, this can be handled inside the connection itself. Once the third, fourth and fifth system arrive, the number of possible connections grows faster than the number of systems — and at some point nobody knows exactly which record travels which way to where. This is precisely where a broker between systems becomes a topic, known in technical jargon as middleware. This article shows what such an intermediate layer actually takes on, when it starts to pay off, when a direct interface remains the better choice and what price the extra layer carries in day-to-day operation.
Key takeaways
- Middleware is not a product but a role in the architecture: an intermediate layer that translates formats, briefly buffers data, retries failed transfers and logs the entire data traffic in one single place.
- With two or three systems and stable formats, the direct point-to-point connection usually remains the cheaper option; an intermediate layer only pays off once the same data is needed by several systems or transfers fail regularly.
- The number of possible direct connections grows by the formula n times (n minus 1) divided by two: five systems produce up to 10 connections, eight systems already 28 (worked example) — each with its own error handling and its own log.
- The price of flexibility is operational effort and dependency: the intermediate layer needs monitoring, restart procedures after incidents, updates and documented knowledge, otherwise a new bottleneck appears where there was none before.
- The decision starts with taking stock: which data flows where today, how often, in which format, and who notices when a transfer fails? Without those answers, an intermediate layer merely relocates the problem.
What a broker between systems actually does
The term middleware sounds like grand architecture but means something very tangible: a layer that sits between two or more systems and brokers the data traffic between them. Instead of the inventory management system writing directly into the shipping program's database, it hands the case over to the broker. The broker accepts, checks, translates, remembers the case and passes it on to the target system. If the target system is unreachable at that moment, the broker waits and tries again later instead of losing the record.
The intermediate layer thus takes on four tasks that would otherwise have to be rebuilt inside every single connection: translation between different formats, buffering so that sender and receiver need not be available at the same moment, retrying failed transfers without creating duplicate postings, and logging in one place. The last point is often skipped over in quotations and is the decisive one in daily work. Anyone wanting to know why an order never reached the warehouse then looks in one place instead of five systems.
The distinction matters: middleware is neither a specific product nor a specific technology. It can be a standalone service on your own server, a queueing system, an integration service from a provider, or a self-written program that collects files at night, reshapes them and passes them on. What counts is not the construction but the question of whether data traffic converges at a defined point where it is visible, repeatable and traceable.
Three terms that are often confused
Point to point: when the direct connection is enough
Not every connection needs a broker. When two systems are supposed to talk to each other, the formats are stable and transfers rarely fail, the direct connection is simply the smaller component: less code, fewer running services, less knowledge that has to be maintained. A point-of-sale system that hands its daily closing to accounting once a day needs no intermediate layer. Neither does a form on the website that writes an enquiry into the order system.
The cost difference shows up not at the start but in operation. A direct connection has one place where something can break. A broker additionally has a service that must keep running, wants monitoring and needs attention whenever the operating system is updated. As long as the number of connections stays small, this additional effort is not justified. In Germany more than 99 percent (Statistisches Bundesamt) of companies are small and medium-sized enterprises — for many of them the lean solution carries them for years.
- Two, at most three systems are involved, and none of them is due to be replaced soon.
- The data formats on both sides are stable and documented.
- The transfer runs at fixed intervals rather than to the second.
- A failed connection is noticed quickly because someone sees the result daily anyway.
- There is no legal or contractual obligation to evidence every individual transfer.
If all five points apply, an intermediate layer is usually premature. If the last point does not apply because evidence of the data exchange is required, the calculation shifts noticeably: central logging alone then becomes a strong argument for the broker.
When point-to-point becomes unmanageable
The boundary lies less in a particular number of systems than in the number of connections between them. If all systems are to be able to exchange data with one another, that number grows by the formula n times (n minus 1) divided by two. Three systems produce 3 connections, five systems 10, eight systems already 28 (worked example). In practice not every system exchanges data with every other, so the actual number is lower. The direction remains the same, though: each additional system brings more new connections with it than there are systems.
The practical tipping point usually arrives earlier than the formula suggests. It comes the moment the same data is needed by more than two systems. As soon as a customer address has to exist in inventory management, in the order system, in the shipping program and in accounting, point-to-point connections create a web in which one change in one place affects four others. Anyone replacing a system then has to touch every single connection.
The second typical trigger is troubleshooting. As long as every connection keeps its own log — one in a text file, one in a database table, one not at all — answering the question of where an order got stuck takes longer than fixing it. In our experience this is the point at which companies ask for an intermediate layer of their own accord: not because of architecture, but because searching costs too much time (project experience).
| Criterion | Point to point | With a broker |
|---|---|---|
| Effort for the first connection | Low, can be built directly | Higher, the base structure is built too |
| Effort for the fifth connection | Rises with every further connection | Falls, the building blocks already exist |
| Troubleshooting | A separate log per connection | One log for all transfers |
| Target system unreachable | Transfer fails, often unnoticed | The case waits and is retried |
| Format change in one system | Adjust every affected connection | Adjust one translation rule |
| Ongoing operational effort | Low, no additional service | Higher, the service needs monitoring |
| Dependency | Spread across many small points | Bundled at one central point |
The four tasks: translate, buffer, retry, log
Anyone assessing an intermediate layer should measure it not by its technology but by these four tasks. They also describe what is frequently missing from a direct connection — not out of negligence, but because the effort per individual connection is hard to justify.
Translate formats
Article numbers with or without leading zeros, dates in different notations, amounts with a point or a comma: the translation rules sit in one place instead of being scattered across every connection.
Buffer data
Sender and receiver do not have to be available at the same moment. The broker accepts the case, acknowledges it to the sending system and delivers as soon as the target system responds again.
Retry instead of losing
Failed transfers are attempted again at defined intervals. An unambiguous case identifier prevents a retry from turning into a duplicate posting.
Log centrally
Every transfer leaves an entry with timestamp, source, target, result and duration. The German information security authority BSI recommends collecting log data centrally and evaluating it regularly (BSI).
These four building blocks also define the honest lower limit: if a connection needs no translation, never fails and nobody will ever have to trace what was transferred, then an intermediate layer adds nothing. Such connections exist. They are simply rarer than one assumes while building the first one.
What a broker does not solve
An intermediate layer transports and translates, but it does not repair poor data. If the order system holds three spellings of the same customer, a broker produces three records in the target system instead of two — faster and more reliably than before, but just as wrong. Master data maintenance and clarifying which system leads for which field remain tasks of data integration and belong before the technical implementation.
Nor does a broker replace business decisions. Whether an order may go to shipping without a credit check, whether an invoice is created immediately after a partial delivery, whether cancellations may be posted retroactively: these are rules of the business, not questions of transfer technology. If they are pushed unresolved into the intermediate layer, a second, undocumented layer of business logic grows there over time alongside the actual systems — and that is harder to change later than any interface.
A common misconception
The price: operational effort and dependency
Flexibility is not free. An intermediate layer is an additional component that has to keep running. It needs a place to run, backups, updates and someone who notices when it stops. And it bundles dependency: if a single direct connection fails, one workflow is affected. If the broker fails, every workflow that runs through it stops. That is manageable, but it must be considered beforehand rather than discovered afterwards.
Then there is the knowledge question. A direct connection between two systems is usually still understood by whoever built it, and at a push by their successor. An intermediate layer with a dozen transfer routes, translation rules and retry logics cannot be changed safely after two years without documentation. This is why process documentation belongs to the scope of delivery and not in the category of things to be done later.
An intermediate layer shifts complexity, it does not remove it. It is the right decision when the shifted complexity is visible, documented and monitored at its new location — and not merely relocated.
- Hosting and backup: where does the service run, how is it backed up, how quickly is it available again after an outage?
- Monitoring: who gets notified when cases pile up, and through which channel outside business hours?
- Updates: who owns system updates and checks afterwards that all transfer routes still work?
- Documentation: are transfer routes, translation rules and retry logic described so that a third person can change them?
- Cover: besides the one person who knows everything, is there at least a second with access and a basic understanding?
Six questions before the decision
The decision for or against an intermediate layer can be made considerably more objective with a handful of questions. They should be answered in writing before technology is discussed — as part of a process analysis or in a separate session with the people who carry out the affected workflows every day.
- How many systems exchange data today, and how many connections actually exist between them?
- Is the same data needed by more than two systems, and which system leads for it?
- How often does a transfer fail, how is that noticed, and how long does the correction take?
- Does the data exchange have to be evidenced, for example due to retention obligations or supply chain requirements?
- Which of the systems involved is likely to be replaced within the next three years?
- Who will operate and monitor the intermediate layer after rollout, and who provides cover?
The answers to questions one to four show whether the need exists. The answers to five and six decide whether the solution will hold up in operation. A project in which the last two questions remain open should be postponed until they are answered.
Roll out step by step instead of running a platform project
An intermediate layer does not have to start as a large undertaking. The more robust route runs through a single connection that already causes trouble today and builds the shared components along the way. After the second and third connection it becomes clear whether the components fit — and the effort per further connection drops noticeably.
Take stock
Record all current data flows: source, target, frequency, format, volume, responsible person. This regularly surfaces at least one transfer that nobody deliberately set up any more.
Pick one connection
Not the most important one, but the one with the greatest trouble relative to its risk. It supplies the building blocks for translation, retry and logging without an outage halting operations.
Run in parallel
For a limited period the old and new transfer run alongside each other and the results are compared. Only once they match over several weeks is the old connection switched off.
Connect further systems
Every further transfer uses the existing building blocks. Only the translation rule and the access to the target system are new, not the entire processing logic.
Hand over operations
Set up monitoring, define alert routes, hand over documentation and brief at least two people. Only then is the intermediate layer a component of operations rather than a project result.
Record all current data flows: source, target, frequency, format, volume, responsible person. This regularly surfaces at least one transfer that nobody deliberately set up any more.
Not the most important one, but the one with the greatest trouble relative to its risk. It supplies the building blocks for translation, retry and logging without an outage halting operations.
For a limited period the old and new transfer run alongside each other and the results are compared. Only once they match over several weeks is the old connection switched off.
Every further transfer uses the existing building blocks. Only the translation rule and the access to the target system are new, not the entire processing logic.
Set up monitoring, define alert routes, hand over documentation and brief at least two people. Only then is the intermediate layer a component of operations rather than a project result.
The actual goal
Operations: monitoring, restart, traceability
The benefit of an intermediate layer arises in operation, not at rollout. Two things are needed for that: a log that a person with business responsibility can read, and a notification that reaches someone before the customer calls. A usable log carries an unambiguous identifier per case so that a transfer can be traced across several systems.
2026-06-03 08:14:22 order-4711 inventory -> shipping ok 142 ms
2026-06-03 08:14:23 order-4712 inventory -> shipping error target system unreachable
2026-06-03 08:19:23 order-4712 inventory -> shipping ok 168 ms (2nd attempt)
2026-06-03 08:21:05 order-4713 inventory -> shipping rejected required field delivery address emptyThe example makes the difference between the three relevant states visible: "ok" needs no attention, "error" is retried automatically and only raises an alert once the retries are exhausted, "rejected" needs a person because the data itself is incomplete. This distinction decides whether monitoring stays useful or gets ignored after two weeks.
Equally important is the planned restart. After an outage of the broker it must be clear whether open cases catch up automatically or have to be triggered manually, and how it is detected if something was delivered twice in the process. These questions belong to ongoing IT operations and should be answered in writing before the first incident, not during it.
Context: why the question comes up more often now
The number of systems in mid-size companies is growing because specialised applications are increasingly used for individual tasks instead of one large all-in-one solution. The European Commission has set the target that by 2030, 75 percent (European Commission) of companies in the EU should use cloud services, data analytics or artificial intelligence. Each of those applications needs data from the existing systems — and delivers data back.
The question therefore shifts from "do we need an interface?" to "how do we keep ten interfaces manageable?". That is not an argument for an intermediate layer at any cost, but it is an argument for making the decision deliberately instead of having it effectively made by the fourth hastily built direct connection. Anyone who has once written down which data flows between which systems today has already completed the hardest part of the decision.
Practical note
Related Articles
What an interface actually is: APIs without prior knowledge
Request and response, data formats, credentials, permissions, limits and versions: how interfaces work and how to check whether a system can be connected.
Invoice checks automated: order, goods receipt, invoice
Matching order, goods receipt and invoice by machine: which fields are compared, where the tolerance band sits, who owns the exception and what stays manual.
Interface security: accounts, keys and permissions
Sign-in, key handling, encryption in transit, minimal permissions, separate test accounts and key rotation: what to settle for every interface you run.