Last updated: May 2026

Data movement and middleware integration connect systems that were not designed to communicate: legacy databases, modern SaaS platforms, ERP systems, custom applications, and cloud services. The right approach depends on data volume, latency requirements, transactional integrity needs, and the systems' integration capabilities. PCG has performed hundreds of data transfers across three decades with zero data loss.

IT director evaluating data movement and middleware integration architecture between disconnected business systems in 2026

Almost no business in 2026 runs on a single system. An accounting platform was selected in 2014. The CRM came in later as a replacement for a homegrown contact database that staff outgrew. Inventory logic still lives in a custom Access database dating to 2008. The new cloud SaaS platform the sales team adopted last year does not talk to any of them. By the time the IT director inherits the portfolio, the integrations between these systems are a combination of manual exports, scheduled scripts that no one fully documents, and a no-code tool that handles two of the eight flows the business actually needs. The integration problem is not theoretical. It is the operational vulnerability that consumes more IT staff time than any other category of work.1

Phoenix Consultants Group has built data movement and middleware integration solutions across more than 500 production engagements since 1995, with hundreds of data transfers documented at zero data loss. This article describes the four integration patterns IT directors encounter most often, when each pattern fits, how PCG handles legacy systems without APIs, and how integrations are validated before going live. The framing is technical. Its audience is the IT director or integration architect responsible for the systems that have to talk to each other regardless of how unfriendly the source systems are.2

Why do business systems need middleware in the first place?

The need arrives at the point where two or more systems hold related data and the business cannot tolerate the manual reconciliation between them. An accounting platform holds the invoice. CRM holds the customer record. Fulfillment system holds the shipping status. When a customer calls about an order, the staff member needs all three. Without integration, that staff member opens three browser tabs, looks up the customer in each system, and reconciles the information mentally on the call. Multiplied across hundreds of calls per week, the manual reconciliation becomes the operational cost the business is trying to eliminate.

Middleware is the architectural answer to that cost. Instead of every system needing to know about every other system directly, middleware sits between them and handles the translation, transport, and reliability concerns. The accounting platform talks to the middleware. CRM does the same. So does the fulfillment system. When a new system joins the portfolio, it connects to the middleware once, not to each of the existing systems individually. That decoupling is what makes integration portfolios maintainable as the business grows past three or four systems.3

Without middleware, integrations are typically built as point-to-point connections: system A talks directly to system B. That works for the first integration. It becomes unmaintainable by the time the business has five systems and ten point-to-point connections, each one with its own error handling, format conversion, retry logic, and ownership. Middleware replaces that mesh with a hub model where each system has one connection to maintain rather than several.

What are the four primary patterns for moving data between systems?

Most integrations PCG builds use one of four patterns, each fitting a specific combination of data volume, latency requirement, and source system capability. The choice between patterns is made during the audit phase, not based on a default preference. Some integrations use a combination of patterns when different parts of the data flow have different characteristics.

1

Scheduled ETL or ELT

Bulk transfer of data between systems on a scheduled cadence: overnight, hourly, or aligned to business events. The pattern fits data warehousing, reporting refreshes, and operational synchronization where latency of minutes or hours is acceptable. SQL Server Integration Services (SSIS) and custom .NET ETL jobs are the common implementation tools.

2

Real-time API integration

Synchronous calls between systems through REST, SOAP, or GraphQL APIs. The pattern fits customer-facing workflows where the user needs an immediate response, and works when both source and destination systems expose modern APIs. PCG builds these on ASP.NET Core Web API with HTTP client libraries handling the API calls.

3

Message queue or event-driven

Asynchronous communication where the source system publishes events and one or more destination systems consume them at their own pace. The pattern fits scenarios where the sender should not wait for the receiver, when multiple destination systems need the same data, or when the receiver may be temporarily unavailable. RabbitMQ, Azure Service Bus, and legacy MSMQ are common platforms.

4

File-based exchange

Secure file transfer of CSV, XML, EDI, or fixed-width files between systems, often through SFTP drops or watched folders. The pattern fits integrations with legacy systems that have no API, EDI partners in supply chain or banking, and batch data exchange where the source system can only export files. PCG builds the watch and process layer in custom .NET with retry and error handling.

Most production portfolios combine these patterns rather than running on a single one. A typical mid-sized business might use real-time APIs between the e-commerce platform and the order management system, scheduled ETL to refresh the data warehouse overnight, message queues to broadcast customer updates to the marketing platform and fulfillment system simultaneously, and file-based exchange for monthly statements going to the accounting partner. The middleware layer handles all four patterns through a consistent architecture, so the IT team operates one integration platform rather than four.2

When does ETL beat real-time integration?

Real-time integration is the architecturally fashionable choice in 2026, and it produces a system that is less expensive to operate when the data flow actually requires real-time behavior. When the data flow does not require real-time behavior, real-time integration introduces complexity and operational burden that batch ETL would have avoided. The decision between the two is operational, not aspirational.

Scheduled ETL fits when

Batch behavior is acceptable

  • Latency of minutes or hours does not affect business outcomes
  • Source system cannot expose API or load is too high for synchronous calls
  • Data volume per transfer is large (thousands or millions of rows)
  • Destination system is a data warehouse, reporting platform, or analytical store
  • Source system has scheduled maintenance windows that real-time would interrupt
  • Integration cost must stay low and operational complexity manageable

Real-time integration fits when

Synchronous behavior is required

  • User is waiting for a response that depends on the integration
  • Business workflow cannot proceed until the data has crossed systems
  • Both systems expose modern APIs with acceptable rate limits
  • Per-transaction data volume is small (individual records, not bulk loads)
  • Failure of either system needs immediate detection and alerting
  • Audit trail per transaction is a compliance or operational requirement

The wrong choice in either direction has measurable cost. Real-time integration where batch would have sufficed produces operational alerts, monitoring overhead, and brittleness that batch would have avoided. Batch where real-time was required produces customer-facing latency and reconciliation work that real-time would have eliminated.

How does PCG handle integrations with legacy systems that have no APIs?

Legacy systems without APIs are the most common integration target PCG encounters in 2026. Modern integration tools assume both endpoints expose REST APIs with JSON payloads. The operational reality is that the system holding the business-critical data is often a Visual FoxPro database from 2003, a Microsoft Access application from 2008, or a mainframe extract program written before the current IT team was hired. Each one requires a different integration method.4

Direct database access is the first approach when the legacy system stores its data in a database with a known schema. ODBC drivers connect SQL Server to most legacy databases including Access, FoxPro, dBase, Paradox, and older versions of Oracle, DB2, and PostgreSQL. The middleware reads or writes through the ODBC layer, which means the legacy application does not need to be modified at all. PCG's audit phase verifies the legacy schema and identifies which tables and columns are safe to integrate against versus which require additional handling.

Scheduled file exports are the second approach when direct database access is not available or carries operational risk. The legacy system already produces reports, exports, or batch files for human review. Middleware watches the folder where those files land, picks them up automatically, parses the format, and loads the data into the destination system. This pattern has the advantage of leaving the legacy system completely untouched. The middleware sees the data only after the legacy system has already finished producing it.

Screen scraping and process automation are the third approach for systems with no programmatic interface at all. PCG uses this approach reluctantly because it is more brittle than direct database or file integration, but it works for legacy applications where the only available interface is the user interface itself. The middleware drives the legacy application through scripted interactions that mimic what a human operator would do, then captures the data the application displays. This approach fits specific situations and is documented carefully because it depends on the legacy interface remaining stable.2

The integration approach is determined by the legacy system, not by a preferred technology. PCG's audit phase identifies what each system can actually do and recommends the integration method that fits the operational reality, rather than forcing an architecture the legacy system cannot support.

What about transactional integrity when data moves across system boundaries?

Transactional integrity across system boundaries is the integration concern that distinguishes production-grade middleware from script-and-cron approaches. A flow that writes to two systems must succeed in both or roll back from both. Operations that process one record at a time must not lose records when a destination system rejects part of a batch. Updates that fan out a customer record across three downstream systems must reach a consistent state across all three, not a state where two have the update and one does not.

PCG handles transactional integrity through three design patterns depending on the flow's requirements. The first pattern is two-phase commit, which works when all participating systems support distributed transactions through XA-compatible drivers. This approach is reliable but limited to systems that expose the necessary transaction interfaces, which excludes most legacy and many SaaS systems. PCG uses two-phase commit when available and documents the trade-off when it is not. The trade-off documentation matters because the integration team has to know which guarantees the architecture actually provides versus which it approximates.

The second pattern is the saga pattern, which handles distributed transactions through compensating actions when a downstream system fails. Each integration step records what it did. If a later step fails, the middleware executes the compensating actions in reverse order to bring the systems back to a consistent state. Saga is appropriate when two-phase commit is not available and when the business can tolerate eventual consistency rather than strict atomicity.

A third pattern is idempotent message processing, which makes message queue and event-driven integrations resilient to retries. Each message carries an identifier the destination system uses to detect duplicates. If the middleware retries a message after a transient failure, the destination system processes it the first time and ignores subsequent duplicates. The pattern is the foundation of reliable asynchronous integration and PCG implements it as standard practice on message queue integrations.3

Speak directly with the engineer who would scope your integration project

A free 30-minute consultation to evaluate your current integration portfolio and the right approach for connecting the systems that matter. No obligation, no sales handoff.

Book Your Free Consultation

How does PCG validate that integrations work correctly before going live?

Validation is a defined phase of every PCG integration engagement, not an assumption made after deployment. PCG's validation approach runs through three layers, each catching a specific category of issue before the integration reaches production traffic.

The first layer is unit testing on the transformation logic. Every format conversion, every business rule applied during the flow, and every edge case identified during the audit gets a unit test that asserts the expected behavior. The unit tests run automatically whenever the integration code changes, which means the team can refactor the integration confidently as the source or destination systems evolve. PCG delivers the unit test suite as part of the integration deliverable so the team owns the validation capability after the engagement closes.

The second layer is end-to-end integration testing against test instances of the connected systems. Where the source and destination systems offer test or staging environments, PCG runs the full integration against those environments before any production cutover. The testing exercises real data flows with realistic volumes, including failure scenarios where one of the connected systems returns errors. Issues that surface in integration testing are corrected before production deployment.

The third layer is parallel operation during the cutover period. New integration code runs alongside the existing process (manual or otherwise) for a defined verification window. PCG compares the output of the new integration against the previous process and reconciles any differences. The new integration becomes the operational master only after the team confirms the outputs match. Existing manual processes remain available as a fallback during the verification window.2

What does the data movement engagement actually look like?

PCG's data movement and middleware integration engagement runs in four phases, each producing a deliverable the business owns regardless of whether the engagement continues. The phased structure matches the patterns PCG uses across .NET migration and Access modernization work, with adaptations specific to integration projects.

Phase one is audit and integration inventory. PCG documents every system in the current integration portfolio, every manual data transfer the team performs today, every scheduled script that moves data between systems, and every no-code platform connection the business currently relies on. The deliverable is a written integration inventory the business owns as a planning asset.

Phase two is architecture and pattern selection. PCG designs the target middleware architecture, selects the integration pattern for each flow identified in the audit, and produces a phased implementation plan. The architecture document defines what the middleware layer will look like, what each connected system will see, and how the integration portfolio will evolve as new systems join the business. Pattern selection happens flow by flow, not system by system, because a single source system often participates in multiple integrations with different latency and integrity requirements.

Phase three is implementation and integration testing. PCG builds the middleware layer in custom .NET against the approved architecture, implements each integration flow according to its selected pattern, runs unit tests on transformation logic, and executes end-to-end integration tests against staging environments. Each integration is validated against representative data before it moves to the next phase.

Phase four is parallel cutover and verification. PCG deploys each integration to production in a controlled sequence, with parallel operation against existing processes during the verification window. Previous integration methods (manual exports, scheduled scripts, no-code platforms) remain available as fallback until the team confirms the new integrations match the expected outputs. The integration portfolio becomes the operational master only after verification completes.4

Find out what your integration portfolio actually requires

A free 30-minute consultation, followed by a fixed-fee integration audit if it is the right next step.

Book Your Free Consultation
Frequently Asked Questions
We tried Zapier and it broke at scale. What replaces it?+

Zapier and similar no-code integration platforms work well for simple, low-volume connections between systems with native API support. They typically encounter limitations at scale: per-task pricing that scales worse than custom middleware, brittleness when one connected system updates its API, lack of transactional integrity across multi-step flows, and limited error handling for production-critical processes. PCG's approach for businesses outgrowing no-code platforms is to identify which specific integrations justify custom middleware versus which can remain in the no-code tool, then build the custom layer alongside the existing platform rather than replacing it entirely.

Can PCG integrate our legacy system that has no API or modern interface?+

Yes. Legacy systems without APIs are PCG's most common integration target. The integration approach uses one of three methods depending on the system: direct database access through ODBC or native drivers, scheduled file exports from the legacy system into a watch folder, or screen-scraping and process automation for systems with no programmatic interface at all. PCG evaluates the legacy system during the audit phase and recommends the integration method that fits the system's actual capabilities.

What happens to integrations during the source system's downtime windows?+

Production integrations are built with downtime tolerance as a design requirement, not as an afterthought. Scheduled jobs use retry logic with exponential backoff. Real-time integrations queue messages during downtime and replay them when the source returns. File-based exchanges hold pending transfers in watch folders. The specific tolerance approach depends on the source system, the consequence of delayed data, and the recovery expectations the business holds. PCG documents the downtime behavior of each integration as part of the deliverable.

How does PCG handle data format differences between systems (XML vs JSON vs flat files vs EDI)?+

Format translation happens in the middleware layer, not in either connected system. Each source system produces data in its native format. The middleware layer transforms each format into the canonical structure the destination system expects. This separation means adding a new source or changing a format only requires middleware updates, not application changes. PCG has worked with XML, JSON, CSV, fixed-width flat files, EDI in all its X12 variants, and proprietary binary formats produced by legacy systems.

Can integrations be added incrementally as we add new systems to our portfolio?+

Yes. PCG's middleware architecture is designed for incremental integration. Each new source or destination system connects to the existing middleware layer through a documented integration contract. The contract specifies what data flows in which direction, what format the source produces, what format the destination expects, and what error handling applies. New integrations follow the same pattern as existing ones, which makes the integration portfolio extensible rather than rebuilt as it grows.

About the Author

Allison Woolbert, CEO and Senior Systems Architect, Phoenix Consultants Group

Allison Woolbert is the principal of Phoenix Consultants Group, the custom software consultancy founded in 1995. PCG has built data movement and middleware integration solutions across more than 500 production engagements, with hundreds of data transfers executed across three decades at zero data loss. Allison's software development background extends to the early 1980s, including work as a data analyst for the U.S. Air Force before founding PCG.

The consistent integration pattern across decades of practice: the systems business depend on were rarely designed to talk to each other, and the cost of expecting them to do so without middleware is the operational burden the IT team carries every week. Replacing that burden with a middleware layer designed for the specific portfolio is the structural improvement that turns the integration problem from a recurring cost into a documented architecture.

LinkedIn

Footnotes and Sources

1 Phoenix Consultants Group, Hidden Cost of Data Silos: An Executive Guide to Unified Operations. phxconsultants.com

2 Phoenix Consultants Group, Data Movement and Middleware Integration service page. phxconsultants.com

3 Phoenix Consultants Group, Custom .NET Software Development for Mid-Sized Business. phxconsultants.com

4 Phoenix Consultants Group, Custom .NET vs Off-the-Shelf SaaS: A 2026 Decision Framework. phxconsultants.com

This article is informational and reflects PCG's experience building data movement and middleware integration since 1995. It is not legal, regulatory, or technical advice for any specific situation. Integration patterns and architecture decisions vary by portfolio; the audit phase exists to determine the right approach for each business. For guidance tailored to a particular integration scope, contact Phoenix Consultants Group directly. PCG was founded in 1995.