class ApplicationRolesStore {

    public Optional<ApplicationRoles> readApplicationRoles(ApplicationId application) {
        try {
            Optional<byte[]> data = curator.getData(applicationRolesPath(application));
            if (data.isEmpty() || data.get().length == 0) return Optional.empty();
            Slime slime = SlimeUtils.jsonToSlime(data.get());
            ApplicationRoles applicationRoles = ApplicationRolesSerializer.fromSlime(slime.get());
            return Optional.of(applicationRoles);
        } catch (Exception e) {
            throw new RuntimeException("Error reading application roles of " + application, e);
        }
    }

    public  ApplicationRolesStore(Curator curator, Path tenantPath);

}