API Virtualization
Usage of an API has undergone a significant change in the last decade – from the practice of using libraries to that of web-services. This has affected the life-cycle of software development in some significant ways and especially with respect to versioning, dependency and managing release of an application.
Most of the software architecture problems can be resolved with 1 level of indirection. Can this API change management be done via adding a layer? #api-virtualization.
(I have thought hard about this problem recently. I have no idea on how it is implemented in real world scenarios. These are just my thoughts on how that could be done.)
- A middleware based approach seems most plausible.
- Service versioning could be another approach. (Maintaining several versions of the same service for a specified period) - which seems to be the best approach if you are planning for enterprise applications.



