kurrentdb/operation/delete_stream

Build and decode soft-delete stream requests.

Soft deletion marks a stream as deleted while still allowing it to be recreated later, depending on server settings and expected revision rules. This module is sans-IO: it builds Streams/Delete requests and decodes the responses returned by a transport backend.

Types

Configuration for a soft-delete operation.

pub opaque type Configuration

Successful soft-delete result.

pub type Delete {
  Delete(position: Position)
}

Constructors

Expected stream revision used for optimistic concurrency checks.

pub type ExpectedRevision {
  Revision(Int)
  NoStream
  Any
  StreamExists
}

Constructors

  • Revision(Int)
  • NoStream
  • Any
  • StreamExists

Transaction log position returned by KurrentDB for a delete.

pub type Position {
  NoPositionReturned
  Position(commit_position: Int, prepare_position: Int)
}

Constructors

  • NoPositionReturned
  • Position(commit_position: Int, prepare_position: Int)

Errors that can occur while decoding a delete response.

pub type ResponseError {
  GrpcError(kurrentdb.GrpcError)
  EmptyResponse
  ManyResponses
  HttpStatus(Int)
  IncompleteHeader
  CompressedMessage
  IncompleteMessage(expected_bytes: Int)
}

Constructors

  • GrpcError(kurrentdb.GrpcError)
  • EmptyResponse
  • ManyResponses
  • HttpStatus(Int)
  • IncompleteHeader
  • CompressedMessage
  • IncompleteMessage(expected_bytes: Int)

Values

pub fn configure() -> Configuration

Create delete configuration with the default expected revision.

The default is Any, meaning KurrentDB will accept the delete regardless of the stream’s current revision.

pub fn expected_revision(
  config: Configuration,
  expected_revision: Int,
) -> Configuration

Set the expected stream revision for optimistic concurrency.

pub fn request(
  client: kurrentdb.Client,
  stream stream_name: String,
  config config: Configuration,
) -> request.Request(BitArray)

Build a Streams/Delete gRPC request.

The returned request is ready for a backend to send over HTTP/2.

pub fn response(
  response: response.Response(BitArray),
) -> Result(Delete, ResponseError)

Decode a soft-delete response from a backend HTTP response.

Some KurrentDB versions may return no response message for delete success; this is treated as Delete(NoPositionReturned).

Search Document