docs: public BackendTransaction beginTransaction(TransactionConfiguration configuration, KeyInformation.Retriever indexKeyRetriever) throws BackendException {
  
          StoreTransaction tx = storeManagerLocking.beginTransaction(configuration);
  
          // Cache
          CacheTransaction cacheTx = new CacheTransaction(tx, storeManagerLocking, bufferSize, maxWriteTime, configuration.hasEnabledBatchLoading());
  
          // Index transactions
          Map<String, IndexTransaction> indexTx = new HashMap<String, IndexTransaction>(indexes.size());
          for (Map.Entry<String, IndexProvider> entry : indexes.entrySet()) {
              indexTx.put(entry.getKey(), new IndexTransaction(entry.getValue(), indexKeyRetriever.get(entry.getKey()), configuration, maxWriteTime));
          }
  
          return new BackendTransaction(cacheTx, configuration, storeFeatures,
                  edgeStore, indexStore, txLogStore,
                  maxReadTime, indexTx, threadPool);
      }