@Override
    public void applyBulkUpdate(BulkUpdate bulkUpdate) throws Exception {
        if (bulkUpdate.getDataType().isIncludingUsers()) {
            try (Stream<Path> s = Files.list(getDirectory(StorageLocation.USERS))) {
                s.filter(this.fileExtensionFilter).forEach(file -> {
                    try {
                        registerFileAction(StorageLocation.USERS, file);
                        ConfigurationNode object = readFile(file);
                        if (processBulkUpdate(bulkUpdate, object, HolderType.USER)) {
                            saveFile(file, object);
                        }
                    } catch (Exception e) {
                        this.plugin.getLogger().severe(
                                "Exception whilst performing bulkupdate",
                                new FileIOException(file.getFileName().toString(), e)
                        );
                    }
                });
            }
        }

        if (bulkUpdate.getDataType().isIncludingGroups()) {
            try (Stream<Path> s = Files.list(getDirectory(StorageLocation.GROUPS))) {
                s.filter(this.fileExtensionFilter).forEach(file -> {
                    try {
                        registerFileAction(StorageLocation.GROUPS, file);
                        ConfigurationNode object = readFile(file);
                        if (processBulkUpdate(bulkUpdate, object, HolderType.GROUP)) {
                            saveFile(file, object);
                        }
                    } catch (Exception e) {
                        this.plugin.getLogger().severe(
                                "Exception whilst performing bulkupdate",
                                new FileIOException(file.getFileName().toString(), e)
                        );
                    }
                });
            }
        }
    }
Flat-file storage using Configurate {@link ConfigurationNode}s.
The data for each user/group/track is stored in a separate file.
common/src/main/java/me/lucko/luckperms/common/storage/implementation/file/SeparatedConfigurateStorage.java