Skip to content

Batch Airnode feed calls to Signed API by small buffer #212

@Siegrift

Description

@Siegrift

Currently, Nodary Airnode feed makes ~1800 per second Signed API calls (counting only those that reach our server). These numbers are similar for many other Airnode feeds. This is because the non-batched feeds make single API call per data feed and after the data is fetched it is pushed to Signed API. Put shortly, we have as many Signed API POST requests as we have data provider requests.

There are these issues:

  1. These requests are randomly distributed, but there can still be too many of them at once, possibly causing Fix load balancer returning 502 Bad Gateway error #211
  2. Causes too many logs in Signed APIs, relating to Investigate possible log reduction in Signed API and Airnode feed #208
  3. Causing unnecessary HTTP request overhead for both Airnode feed and Signed API.

What I propose is to batch the Airnode feed calls by a short period (e.g. 50ms or 100ms). We want to push the data as soon as possible, but such a short delay seems acceptable to me. This sets the upper bound on the number of Signed API calls requests made per second.

If we do this, we might not want to remove the "Request received" message in this issue, but instead log it with how many "signed datas" it received in the batch.

@bbenligiray let me know wdyt.

Metadata

Metadata

Assignees

No one assigned

    Labels

    on holdWe do not plan to address this at the moment

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions