package com.xfestudio.xfeservermanager.api.store;
import com.xfestudio.xfeservermanager.api.audit.AuditEvent;
import com.xfestudio.xfeservermanager.api.world.WorldChangeRecord;
import java.util.List;
import java.util.concurrent.CompletionStage;
/** Non-blocking persistence contract. Implementations must keep writes off the server tick thread. */
public interface EventStore extends AutoCloseable {
CompletionStage<Void> appendAudit(AuditEvent event);
CompletionStage<Void> appendWorldChanges(List<WorldChangeRecord> events);
CompletionStage<Page<AuditEvent>> queryAudit(AuditQuery query);
CompletionStage<Page<WorldChangeRecord>> queryWorldChanges(WorldChangeQuery query);
CompletionStage<Void> checkpoint();
EventStoreHealth health();
@Override
void close();
}
package com.xfestudio.xfeservermanager.api.store;
import com.xfestudio.xfeservermanager.api.audit.AuditEvent;
import com.xfestudio.xfeservermanager.api.world.WorldChangeRecord;
import java.util.List;
import java.util.concurrent.CompletionStage;
/** Non-blocking persistence contract. Implementations must keep writes off the server tick thread. */
public interface EventStore extends AutoCloseable {
CompletionStage<Void> appendAudit(AuditEvent event);
CompletionStage<Void> appendWorldChanges(List<WorldChangeRecord> events);
CompletionStage<Page<AuditEvent>> queryAudit(AuditQuery query);
CompletionStage<Page<WorldChangeRecord>> queryWorldChanges(WorldChangeQuery query);
CompletionStage<Void> checkpoint();
EventStoreHealth health();
@Override
void close();
}