Compare
A gateway decides where a request for /v1 goes. It usually does not decide when v1 should stop existing, or tell the customers still calling it. EndPointBlank does that part, and works alongside the gateway you already run.
A gateway sits at the edge of your API. Gateways are built for routing requests to the right backend, terminating TLS, rate limiting, and checking a key or token before traffic reaches your services. Routing /v1 and /v2 to different backends is exactly the kind of job they are good at.
If you need those things, you need a gateway. EndPointBlank is not one, and does not try to replace it.
Retiring a version is not a routing problem. It needs to know what state each version is in, which of your customers still call it, and whether they have been told. A gateway can often tell you which consumer key sent a request, and an API management layer may mark a whole API as deprecated. Turning that into "these customers still call v1 of this endpoint, and here is who has been told" is usually left to you: teams end up joining gateway analytics to a customer database in a spreadsheet, the week before the shutdown.
Calls between your own services often never pass the edge gateway at all, so it never sees them.
| You need | Typical API gateway | EndPointBlank |
|---|---|---|
| Route /v1 and /v2 to different backends | Yes, its core job | No: keep using your gateway |
| Rate limiting and edge TLS | Yes | No |
| Lifecycle state per endpoint version | Usually per API at most, if your gateway has a management layer; rarely per endpoint version | In development, current, deprecated, retiring on a date, retired |
| Which customers still call v1 | Per-consumer traffic, if every caller is identified at the gateway; tying it to versions and customers is yours to build | A list of clients per version, from every authorization |
| Telling those customers | Usually outside the gateway, or a portal announcement | Notifications on deprecation, with reminders before the date |
| Deprecation and Sunset headers | Possible with per-route header configuration | Added by the client library on every deprecated version |
| Service-to-service calls behind the edge | Only if routed through the gateway | Authorized inside each service, wherever the call comes from |
EndPointBlank runs inside your services through a client library, not in front of them, so nothing about your gateway changes. The gateway keeps routing and rate limiting at the edge; the library checks each call against its client's grants, records the version it asked for, and adds deprecation headers on the way out.
Set up a client library, or read Deprecation and Sunset headers: a practical guide.
Sign up in under a minute. No credit card, no sales call.