Three Things to Consider When Integrating with Legacy Systems

It used to really bother me. These old cruddy systems. Grey hair after grey hair… they just they are the bane of the corporate world. But replacing them? Uh… ha!… no way, man. It is a reality of modern day business. There are going to be some legacy systems and there just isn’t anything we can do about it. So here is how I learned to stop worrying and love those legacy systems.

There is no API  | There will never be an API | Stop Complaining

Creating an API on an enterprise application that was never designed with an API…that’s a heavy lift. It’s probably not going to happen. So what we need to do is interact directly with the database. In common legacy fashion, we are going to be stitching together A LOT of tables. We see these a lot, and often joke that the developers were probably paid by how many tables they use. Not only are we stitching together a lot of tables, but the overall size of the data (both columns and rows) is huge. So?

It’s More than Just SQL

K3 uses a component called a Database Delta Adapter. It is the abstraction we use as a wrapper for legacy database systems. K3 keeps track of a monotonically increasing value, such as a timestamp, to poll a database.

As a first step K3 checks its own data to find the most recent occurrence of this monotonically increasing value. Subsequently an SQL statement is executed against the database, using this column value to only pull the rows that we need.

The key is eliminating expensive network operations by only having to look at the most recent data inserted into the table. K3 then runs an analysis to triple check we haven’t received any duplicated data.

The End Crowns All

Is it the most beautiful thing? No, we are still polling a database on a preset interval. But in the grand scheme of things we are pulling data in real time out of a legacy system and ETL-ing it in K3 to any shape and format we want. And over time this is the most powerful thing. Your people are no longer beholden to the burdensome legacy system.