#feature; All IDs to `Bytes`
All IDs moved from type ID (which is a string) to Bytes.
Outcome:
This will speed up subgraph querying
Considerations:
- This should not be too hard of a change, but it will propogate mapping changes and resyncs on all subgraphs using type
ID. Will also take time to track and backfill. This kind of change will take a lot of time operationally. - Downstream dependencies assume that the ID will not change (assumptions are case sensitive). This will require coordination with other layers of the stack.
Consideration: Maybe we can do this just for subgraphs that are having consistent query speed issues so we do not have to rebackfill everything at once and make the load lighter for us.
Something to take into consideration with this change is that prior to graph-node version 0.30.0, you could not use less than and greater than filter on fields of type Bytes (see this changelog). Indexers running outdated graph nodes would therefore serve subgraphs with inconsistent schemas (id_gt would work for some indexers and not others). This would also break pagination in some cases, which relies on id filters.
Case in point, the Messari Uniswap V3 subgraph deployed to the Arbitrum network does not allow using the id_gt filter.
@melotik @bye43