With the emergence of mobile revolution and ubiquitous customer connects, there is a growing demand for agility, resilience and flexibility amongst organizations. The shift in the business models to support agile enterprises saw a decline in the demand of traditional IT models. There has been significant impact on one of the most popular themes of the past decade - Service Oriented Architecture (SOA).
The waning interest on “traditional” SOA can be attributed to wide variety of reasons. However it needs to be noted that, the challenges faced by SOA are more attributed to the faulty implementation or the changing dynamics of environment and nothing to do with SOA principles which are still prevalent and applicable for good implementation.
With the current digital transformation trends, APIs adoption has become critical for organizations to align to the changing business dynamics. While adopting API, organizations needs to be ensured that it is not restricted to short term view, but should also consider the long term view on flexibility and maintainability of the implementation. The following points discuss some pitfalls that might be encountered during API adoption and recommendations to address those.
Understanding Resource Orientation
The advent of mobile revolution has given a new level of prominence to REST and JSON. Coding in REST requires a new way of thinking – thinking in terms of assets that enable continued interaction of resources. Many developers who are moving from SOAP world may not have realized this concept. If not, what you may get could be a simple translation from SOAP implementation in JSON format instead of true RESTful services.
Change Management challenges
API models propose simplified models suited for light weight consumers. Though the schema complexity is reduced, the challenges of versioning and change management remain an important consideration. Frequent change on APIs will create user dissatisfaction and may result in non-usage of the APIs.
Channel driven APIs
The nature of need for APIs requirement requires a close interaction with channels. With this scenario, there is a strong possibility that APIs “may” get modeled by the channels and there are possibilities of emergence of channel specific APIs.
Many new API implementations are considering taking the step of bypassing the ESB layer itself. Instead of taking a default approach, it is important to clearly identify and define the right use cases and identify only the relevant usage scenarios for APIs.
Few basic steps can allow much better and stable implementation without impacting the time to market and cost of implementations. This is where SOA learnings (do’s and don’ts) can be leveraged effectively. The need of the hour is a pragmatic approach that provides flexibility and agility for APIs without sacrificing the basic consistency and best practices of service orientation like Abstraction (abstracting the intricacies of implementation), Statelessness (by utilizing patterns like deferrals, pub-sub, delegation models etc.), Reusability (prevent proliferation by prudent design), Discoverability (supplemented with communicative metadata) etc.
Utilizing SOA principles lend the required stability for API implementations. Hence, effective approach will be to take the best of both to ensure the right implementation.