Abstract APIs and Strangler patterns - MAM management with Avid
Migrating to a new MAM system is a major headache for organizations with large volumes of assets who can’t afford downtime. The BEIT session ‘Managing Multiple Asset Management Systems’ (Saturday, April 6 10:40am - 12:00pm Location: N260) will discuss how the Strangler software development pattern can slowly take over a legacy MAM system’s functions until nothing is left but the new system. Roger Sacilotto, Consulting Software Engineer at Avid takes us under the hood.
Why is migrating to a new MAM system with large volumes of assets a major headache for organizations?
Roger Sacilotto, Avid: MAM systems often have their own unique APIs and integrating a production system creates a dependency on these. Also, systems with a large amount of assets usually have numerous software components contributing to that set of assets. This can mean that in order to change MAM systems, all contributing software components will need to be rewritten to work with the new APIs.
What is the Strangler software development pattern?
The Strangler pattern allows a gradual replacement of a software system, rather than an all-at-once forklift upgrade. As Martin Fowler [https://www.martinfowler.com/bliki/StranglerApplic... defines it, the Strangler pattern gradually creates “a new system around the edges of the old, letting it grow slowly over several years until the old system is strangled.”
How can this help take over a legacy MAM system’s functions?
An abstract API can be created that connects to the legacy system, allowing the contributing software to use both legacy and new APIs during the conversion period. When the conversion is complete, the API can then be rerouted to a new MAM system. This approach also allows flexible transition options, like replacing a monolithic database with a collection of databases which are more suitable for a broader range of applications.
How easy is this to implement?
It’s not a matter of ease as much as timing. An API abstraction (facade) can provide isolation between the clients of a MAM system and the implementation. By allowing an ongoing refactoring process, components can test their changes without requiring the entire system to be converted.
Is it vendor agnostic?
Yes, as long as the design of the abstract API allows different implementations on the backend.
A bit more detail please on how it actually works?
The abstract API presents a model of assets that offer a base method of setting and getting data, such as scalar data (key/value pairs) and time-based metadata. API extensions can be allowed but must be done carefully. Where possible, the API should extend in vendor-neutral ways, as any extension that is too closely tied to vendor functionality can cause the system to become brittle and hard to manage.
Also, the backend of the API must convert the abstract model to appropriately interact with the connected MAM system.
What are the typical outcomes of such an implementation?
Avid is in the process of doing this within its own production software. All new components are being written to the abstract API, and older components are being refactored as time and resources allow. So far, the process has brought some very positive benefits, such as the ability to view and search mixed asset systems with common tools, while continuing to support legacy code.
Want to know more about this year's BEIT Conference? Click the link here to see the official schedule along with a snippet of information about each presentation.
Would a free exhibit pass help? Click this link or image below and enter the code MP01 at the correct prompt.
Here are some additional articles about Broadcast Engineering and Information Technology (BEIT) sessions taking place at NAB 2019 in which you may be interested.
You might also like...
Synchronizing became extremely important with the growth of AC power systems, which ended up being used to synchronize all sorts of equipment, from Radar to television.
A full-service, end-to-end post-production house based in London, ENVY Post Production supplies a variety of high-quality services to a growing stable of high-profile customers around the world.
This is the second instalment of our extended article exploring the use of Microservices.
As the world went remote in 2020, many businesses turned to cloud technology to help keep content flowing, causing a massive spike in cloud adoption. As one data point, Signiant reported a more than 230% increase in data moving into and out…
Computer systems are driving forward broadcast innovation and the introduction of microservices is having a major impact on the way we think about software. This not only delivers improved productivity through more efficient workflow solutions for broadcasters, but also helps…