The Candid Startup
    Preparing search index...

    Abstract interface representing an event log

    interface EventLog<T extends LogEntry> {
        addEntry(
            entry: T,
            sequenceId: bigint,
            snapshotId?: bigint,
        ): ResultAsync<AddEntryValue, AddEntryError>;
        query(
            start: bigint | "snapshot" | "start",
            end: bigint | "end",
            snapshotId?: bigint,
        ): ResultAsync<QueryValue<T>, QueryError>;
        setMetadata(
            sequenceId: bigint,
            metaData: LogMetadata,
        ): ResultAsync<void, MetadataError>;
        truncate(start: bigint): ResultAsync<void, TruncateError>;
    }

    Type Parameters

    Implemented by

    Index

    Methods

    • Add an entry to the log with the given sequence id

      Parameters

      • entry: T
      • sequenceId: bigint

        The next available sequence id in the log. This is returned as endSequenceId when making a query for the last entry in the log. Returns a ConflictError if not the next available id.

      • OptionalsnapshotId: bigint

        The sequence id for the most recent snapshot that the client is aware of. If there's a more recent snapshot, it's id will be returned in AddEntryValue.

        Any other problem with serializing the entry will return a StorageError.

      Returns ResultAsync<AddEntryValue, AddEntryError>

    • Return a range of entries from first to last inclusive

      The event log may return fewer entries than requested. If so, repeat the query starting from nextSequenceId.

      Parameters

      • start: bigint | "snapshot" | "start"

        SequenceId of first entry to return. Use 'start' to query from the first entry in the log. Use 'snapshot' to query from the most recent entry with a snapshot, or the first if no snapshot is defined.

      • end: bigint | "end"

        SequenceId one after the last entry to return. Use 'end' to query everything to the end of the log.

      • OptionalsnapshotId: bigint

      Returns ResultAsync<QueryValue<T>, QueryError>