movio / bramble

A federated GraphQL API gateway
https://movio.github.io/bramble/
MIT License
498 stars 55 forks source link

Allow Bramble to store its gateway state externally #99

Open nmaquet opened 2 years ago

nmaquet commented 2 years ago

In High Availability deployments, it would be desirable to allow Bramble to store the merged schema and the other bits of gateway state into an external consistent storage service (e.g. etcd). At Movio, we have struggled to keep separate instances of Bramble synchronised and this would go a long way in solving that issue.

gmac commented 2 years ago

Huge +1, especially on the end state of Bramble having a defined cartridge format. As part of this objective, I'd suggest the following core APIs:

For the import and export, I go back and forth if it makes sense for them to use JSON strings as the IO formats. While that's nice and tidy, my gut says that NOT baking stringification into the import/export process is preferable so that implementors can choose to perform tailored caching steps to portions of the payload without having to go in and out of string formats repeatedly.