The memory usage of an in-memory commit currently depends on the number of modified nodes and the structure of modified documents. The first is limited by the updateLimit on the DocumentNodeStateBuilder. When the updateLimit is reached, the changes are pushed to a branch. The structure of the modified documents comes into play, when those documents have a rather high memory usage. The current commit implementation performs the update in a single call to DocumentStore.createOrUpdate(), which has a return type of List<Document>. The returned list contains the documents as they looked before the update. With a default of 100'000 as the updateLimit and heavy weight modified Documents, this can result in a high memory usage.