They seem to be similar to fastly in that I can pass an object_id to invalidate, and every object that contains it is invalidated. Invalidate-by-id is very powerful compared to invalidate-by-path, since I no longer have to remember which paths contain which objects.
But they go further than fastly because you don't have to annotate responses with object ids: https://fastql.io/docs/examples/mutation-update/#automatic-i...
This is extremely interesting and something I haven't seen before in an edge cache.