Initial fully async version
TODO:
* Snapshots
* better scan - take into account partitions, split into multiple
  parallel scans on "partition"