Forward HTTP API Proxy

HARP's primary use case is to function as an HTTP forward proxy, facilitating communication with external APIs (or internal but separate services).

A hub for multiple services

HARP is installed on your servers, positioned close to the services that will utilize it. By acting as an intermediary for all API transactions initiated by your application, HARP provides detailed control and observability over these interactions. This setup ensures you have the necessary information to address and mitigate unexpected issues promptly, thereby preventing third-party API errors from impacting your end-user experience. This allows you to collaborate effectively to resolve root causes.

What is a Forward Proxy?

A forward proxy is a server that acts as an intermediary between a client and external servers, forwarding client requests. In the context of HARP, your server acts as the client application, and the external servers are the APIs you consume. HARP enhances this interaction by intercepting, accelerating, fine-tuning, adding resilience features, observing, and modifying HTTP requests and responses, all while operating within your infrastructure.

Topology

HARP is installed on your servers, just next to the services that will consume it. By intermediating all API transactions initiated by your application, you get acute control and observability over what's happening. Because nobody likes to be blamed for a third-party API error, and yet, if you're responsible for the end-user facing application, nobody cares. You'll have the right information at the right time to mitigate unexpected events and colaborate to fix the root causes.

Another direct benefit of having a forward proxy for external APIs is not having to code any reliability logic. Good coders will code it. Great coders will focus on delivering value to the end-user, and let the hard-yet-necessary technical details to a middleman. You get a RFC-9111 compliant cache layer that you can tune to your needs, a rules engine to fix the Internet, circuit breaking, observability, circuit breaking, throttling, rate limiting, time limiting and more (reliability-related features are coming in the incoming 0.7 release).