# Tame the legacy beast with API’s

- Link: https://www.agilicus.com/tame-the-legacy-beast-api/
- Published: 2019-12-30T18:11:25+00:00
- Author: Don Bowman

Most of you have some legacy beast of software. Its integrated with half your company,
its a giant monolith that you spend half the year planning for, and half doing, 
the upgrades of. And, the vendor is clearly heading to some end-of-life timeline.
But, it has a choke-hold on your data, leaving you with little choice: keep adding
more integration points, or perish. However, have no fear, there is a method using
modern API’s that can help you tame that legacy beast.

The first step of understanding the problem is recognising we have a problem. The
problem is: “I don’t want that system to become more powerful, but it owns my data”.
These all-in-one monoliths (your ERP, CRM, payroll, …) are designed such that all
integration points ***increase*** their hold on you. So lets take control of those
integration points. We’ll use the power of decoupling and decomposition.

First, lets recognise how we can get at the data. We can either grope around directly
in the database, or we can use the native API integration points. The first challenges
us on upgrades with compatibility. The second is expensive and rarely architected
for our simple small applications, using big enterprise-busses like CORBA. What 
are we to do?

Well, let’s build a moat. We’ll use [OpenAPI](https://en.wikipedia.org/wiki/OpenAPI_Specification)
and create small, RESTful API’s, as we need them. Each can be its own small microservice.
It just has to model one thing. Now instead of having to update and test all applications
when we upgrade the backend, we just have to update and test the API, secure in 
the knowledge the applications will remain compatible.

As we decouple more and more from the direct control of the beast, we become more
confident in eventually replacing it. After all, we would just have to keep these
API’s compliant on the North (application-facing) side. The south-side might be 
different for the new ERP, but we won’t have to rewrite all our applications.

A solid authentication, authorisation, and API [layer](https://www.agilicus.com/auth-and-api-with-openid-connect/)
gives us control of our destiny.
