System Integration
Integrating AI With Legacy Enterprise Systems Without a Rebuild
Integration patterns for putting models to work against core systems you cannot replace.
The model is rarely the obstacle. In most enterprise AI programmes that stall between pilot and production, the blocker is that the system of record cannot be changed, the vendor will not expose an interface, and nobody is willing to put an experimental component in the path of a transaction that must not fail. The organisation concludes that it needs to modernise the core first, and the AI initiative is deferred to a programme that will take three years.
That conclusion is usually wrong. Integration patterns exist that let a model influence real decisions without modifying the core system, and they are considerably cheaper than a rebuild. Choosing among them is largely a question of how close to the transaction the model needs to sit.
Establish the read path before the write path
Almost every integration begins with getting data out. The mechanism you choose determines how fresh your model's inputs can be and how much load you place on a system that has no headroom.
- Change data capture from the database transaction log is the strongest option where it is available. It provides near-real-time change events, imposes minimal load on the source, and requires no application modification. Where a vendor's licensing or support terms restrict log access, this must be negotiated rather than assumed.
- Scheduled extraction against a replica is the pragmatic fallback. It is well understood and safe, at the cost of latency measured in minutes or hours. This is entirely adequate for batch scoring, forecasting, and any decision a human reviews.
- Event publication from the application, where the core system supports it, gives the cleanest semantics because the events describe business facts rather than row changes. It is the least commonly available.
- Screen scraping and robotic automation should be treated as a time-boxed bridge with a documented replacement date, not an architecture. They break silently when a vendor changes a form layout.
Whichever mechanism you use, land the extracted data somewhere your own teams control before any model touches it. A staging layer you own gives you a place to reconcile, validate, and version inputs, and it means a change in the source system breaks one contract rather than every consumer.
Decide where the decision is enforced
The harder architectural question is how a model's output re-enters the business process. Four patterns cover most situations, in increasing order of coupling.
The first is advisory output. The model writes to its own store and its conclusions appear in a dashboard, a work queue, or an additional panel in the operator's interface. Nothing in the core system changes and the model cannot cause an incident. This is the correct starting point for almost every programme, because it produces real usage data and real user feedback while the risk remains near zero.
The second is queue enrichment. Where work already flows through a queue, the model reorders or annotates it. Claims are prioritised, alerts are ranked, and cases are routed to the team most likely to resolve them. The core system's behaviour is unchanged; only the order in which humans encounter work is different. The business value is often substantial and the failure mode is graceful, because a model outage means the queue reverts to its previous ordering.
The third is the decision service invoked by a wrapper. Rather than modifying the core system, a thin service sits in front of it, calls the model, applies deterministic business rules, and then invokes the existing interface. This is where an anti-corruption layer earns its keep: the wrapper translates between your domain model and the core system's data structures, so that the model and the legacy schema can evolve independently.
The fourth is inline scoring inside the transaction. Reserve this for decisions where deferred output has no value, such as authorisation or real-time fraud interdiction. It demands a strict latency budget, a tested fallback that produces a safe default when the model is slow or unavailable, and a circuit breaker that trips before the transaction does. Most organisations reach this pattern later, once operational confidence has been earned in the first three.
Contracts, versions, and the shadow period
Two disciplines make the difference between an integration that survives and one that requires constant attention.
The first is explicit contracts. Every interface between the model and the surrounding systems should have a versioned schema, validation at the boundary, and a defined behaviour for unknown fields. Models change more often than core systems do, and a new feature or an altered output range should not require a coordinated release across three teams.
The second is a shadow period. Before a model influences anything, run it in parallel against live traffic and record what it would have decided alongside what actually happened. Two to four weeks of shadow data answers questions no offline evaluation can: how the model behaves on the genuinely odd records, how often it abstains, where the input pipeline produces nulls that the training data never contained, and whether the measured lift matches the business case. It also gives risk and audit functions something concrete to review, which tends to shorten approval considerably.
Observability across the seam
When an integrated system misbehaves, the question is always whether the fault lies in the model, the data pipeline, or the core system. Answering it quickly requires correlated telemetry across the seam: a request identifier propagated from the source event through scoring to the write-back, structured logs at each hop, and monitoring on input distributions rather than only on service health.
Input drift monitoring matters more here than in a greenfield system, because legacy sources change without notice. A field that quietly begins arriving in a different format, a code list extended by an operations team, or a batch that arrives half-empty after an upstream failure will each degrade a model's output while every service reports itself healthy. Alerting on the shape of the data, not just on error rates, is what catches these before the business does.
None of this requires replacing the core system. It requires accepting that the core system is a fixed constraint, designing the seam deliberately, and earning the right to move closer to the transaction one pattern at a time.