Is your feature request related to a problem? Please describe.
At the moment the only two options for persistence are:
local file: great for development, not feasible in production.
etcd: strong guarantees, operation nightmare.
We need a third way.
Describe the solution you'd like
Redis sits in the middle between the two options:
it's possible to implement a distributed lock with it
data is persisted
many managed redis offerings on the market
no need to define a schema. simply point the sink to it and run
The idea is to serialize the sink state to redis using a key like apibara:sink:${sinkId}. Unlike what we do in etcd, we should serialize the state as json so it's easier to debug when things go wrong.
Is your feature request related to a problem? Please describe.
At the moment the only two options for persistence are:
We need a third way.
Describe the solution you'd like
Redis sits in the middle between the two options:
The idea is to serialize the sink state to redis using a key like
apibara:sink:${sinkId}
. Unlike what we do in etcd, we should serialize the state as json so it's easier to debug when things go wrong.Additional context
This blog article contains a simple implementation of a distributed lock with a single redis instance.