code: private CompletableFuture<Snapshot> takeSnapshots() {
      ComposableFuture<Snapshot> future = new ComposableFuture<>();
      stateContext.execute(() -> {
        try {
          future.complete(snapshot());
        } catch (Exception e) {
          future.completeExceptionally(e);
        }
      });
      return future;
    }
docs: Takes and persists snapshots of provided services.
  
  @return future to be completed once all snapshots have been completed