This makes the KeyValueStore enum async, which, of course, has a rather big impact on the code base.
The enum delegates to KeyValueStoreImpl which is still sync. The actual Disk and Memory implementations are also sync. We can make this implementation async in a future a PR. We may be able to remove the indirection to the KeyValueStoreImpl enum then as well. We will see. When this is done, we can also port the kvx implementation for postgresql - albeit, using async.
Just mentioning this here now so that it is clear that there is more work, but I intentionally wanted to keep this PR a bit smaller so that it can be reviewed better.
This makes the
KeyValueStore
enum async, which, of course, has a rather big impact on the code base.The enum delegates to
KeyValueStoreImpl
which is still sync. The actualDisk
andMemory
implementations are also sync. We can make this implementation async in a future a PR. We may be able to remove the indirection to theKeyValueStoreImpl
enum then as well. We will see. When this is done, we can also port thekvx
implementation for postgresql - albeit, using async.Just mentioning this here now so that it is clear that there is more work, but I intentionally wanted to keep this PR a bit smaller so that it can be reviewed better.