Managing Production-grade Asynchronous APIs

How you can utilise an API Management solution to manage asynchronous APIs at scale? What benefits you’ll gain?

Photo by Lars Kienle on Unsplash

Use Case — Streaming service for server telemetry

Current solution in place
wscat ws://localhost:808/metrics/1/memory
{"heap":67893392,"nonHeap":36260800,"timestamp":1614803952066}
{"heap":72591160,"nonHeap":37250808,"timestamp":1614803953067}
{"heap":72591160,"nonHeap":37251544,"timestamp":1614803954064}

Coupling it with an API Management solution

Recommended solution with an API Management that takes away many challenges from service developers.

Making it production-ready

Document the service with AsyncAPI specification

The AsyncAPI schema for the metrics service would look like this.

Creating the Metrics API

WSO2 API Manager allows you to create an API from an already existing AsyncAPI specification.

Applying a rate-limiting policy

A business plan acts as a rate-limiting policy

Managing the API lifecycle

Lifecycle transitions to PUBLISHED
Create revisions for APIs

Making the API discoverable

API documentation can be hosted in the Developer Portal

Securing the API

curl http://localhost:8280/telemetry/1.0.0/metrics/1 -H "Authorization: Bearer [accesstoken]"

API analytics and monetization

API Analytics provides a broad range of API runtime insights

Takeaways

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Dunith Dhanushka

Editor of Event-driven Utopia(eventdrivenutopia.com). Technologist, Writer, Senior Developer Advocate at Redpanda. Event-driven Architecture, DataInMotion