Connecting legacy systems without replacing everything

Keep a legacy system when it still performs an important role reliably, and connect the specific information and actions needed by the wider operation. Start with a bounded workflow, an agreed source for each record and an explicit failure path. Replace components when their limitations justify the disruption, rather than treating age alone as a reason to rebuild.

Define the business handoff first

An integration should answer a concrete operational question: when an order is accepted, what must purchasing know, what may the warehouse reserve and who confirms delivery? Listing systems without mapping these handoffs makes it easy to move data without improving the work.

Identify which application owns each fact. Customer identity, available stock and payment status may have different authoritative sources. Agree what a receiving system should do when a record is missing, delayed or disputed. Copying a field into another database does not transfer responsibility for its accuracy.

An illustrative example: orders and warehouse work

Consider an order-management system that works well for sales and a warehouse application that manages fulfilment. Staff currently re-enter approved orders into the warehouse tool. A targeted integration could pass the approved order and return its fulfilment status, while leaving both applications in place.

The important details are operational: distinguish an order update from a new order, avoid duplicate reservations if delivery is retried, and send rejected records to a named owner. Test cancellation after partial fulfilment as well as a straightforward order. A connection that handles only the normal path can move the exception-handling burden back to staff.

Match the connection to the need

Use supported interfaces where they provide the required behaviour. An API may suit an interactive request; an event or scheduled exchange may suit work that can complete later. A translation layer can keep each system's record format separate, but adds another component to run and maintain.

  • Freshness: how old can the information be before the business decision becomes unsafe or unhelpful?
  • Authority: which system may create, amend or cancel each record?
  • Reliability: how are missing messages, repeats and partial completion detected and resolved?
  • Capacity: can the existing system handle the proposed frequency and volume?
  • Support: who monitors the connection and owns failures across suppliers?

Preserve value without preserving every constraint

Connecting existing applications can reduce the scope of immediate change and preserve familiar processes. The tradeoff is continued dependence on their interfaces, support arrangements and limitations. A layer of integration should not conceal an unsupported component or a failure nobody owns.

Where replacement is necessary, moving one capability at a time can make change easier to examine and reverse. It also creates a period in which old and new components coexist. Plan reconciliation and the eventual retirement of duplicate functions, rather than allowing temporary bridges to become permanent by accident.

A useful first step

Map one end-to-end handoff with its records, owners and exceptions. Confirm access to the relevant interfaces, then test a small connection against normal, repeated, delayed and rejected requests. Hyperwise can help define that boundary and connect software, infrastructure and operational responsibilities around it.

← All business guidesDiscuss your challenge →