Google has pushed back its decommissioning deadline for the JSON-RPC protocol and Global HTTP Batch features due to the impact it was having on users who were unaware of the discontinued support.
JSON-RPC is a remote procedure protocol that defines the structures of data and establish the rules around which it is processed.
One of its benefits is that it is considered ‘transport agnostic’ and can be used to do the same process over varying message passing formats, be that sockets or HTTP.
Google is trying to move APIs away from remote procedure call in favour of the software architecture Representational State Transfer (REST). When APIs were first developed to interact with web applications they were created around RPCs which rely on simple HTTP calls: unfortunately this code is not as efficient nor secure as REST.
Google has extended the deprecation timeline to August 12, 2020.
Google developer Shilpa Kamalakar notes in a blog that: “Starting February 2020 and running through August 2020, we will periodically inject errors for short windows of time… We know that these changes have customer impact and have worked to make the transition steps as clear as possible.”
Essentially Google is telling everyone that is using JSON-RPC client libraries that they need to switch over to REST client libraries or applications and features will experience downtime and eventually no longer respond.
JSON-RPC Protocols Forced Downtime
To help its users’ figure out if they have systems that are using these features, Google is going to periodically force downtime. This process started in February and will continue up until full support is removed in August.
The outages that users will experiencing if there systems still rely on these features will continue to worsen as the August deadline approaches.
The next forced down time is on March 24 when there will be partial outages for a full hour at 10.30 GMT. During this time 100 percent errors will be returned for the APIs using JSON-RPC and Global HTTP batch endpoints.
HTTP batch requests are started HTTP request that hold multiple API calls. One of the main features in Google that use this is the Classroom API. Classroom uses batch HTTP requests to update course in bulk or retrieve the roster for classes. The users is limited to 1000 calls in a single batch requests.
Kamalakar notes that: “A batch request is heterogeneous if the inner requests go to different APIs. Heterogeneous batching will not be supported after the turn down of the Global HTTP batch endpoint.”
“As we move towards a more distributed, high performance architecture where requests go directly to the appropriate API server we can no longer support these global endpoints.”
Developers using JSON-RPC client libraries (either the Google published libraries or other libraries) should switch to REST client libraries and modify applications to work with them.