graphprotocol / indexer-rs

Rewrite of indexer-service in Rust with TAP payments implementation
Apache License 2.0
22 stars 20 forks source link

[Feat.Req] readiness endpoint #504

Open rotarur opened 4 days ago

rotarur commented 4 days ago

Problem statement When restarting the indexer it takes some time to load all the resources and to check all SG's. during this loading period the loadbalancer is sending traffic to the pod and those queries fail increasing the error rate.

I'd like to propose to create a /ready readiness endpoint which starts to respond with 200 http code only after everything was loaded and checked. This will allow the loadbalancer to know when to start sending traffic to the backend.

We could configure a delay for the traffic to be sent to the backends but that's a static configuration and sometimes it takes less / more time than usual so better is to have an endpoint that we could configure the loadbalancer to query to know when to send traffic

Expectation proposal To have an endoint exposed by the indexer, like /readiness, which I can hit and get the readiness of the indexer to receive traffic so we can have the loadbalancer managing these backends without responding to the user with an error.