Skip to main content Link Search Menu Expand Document (external link)

MessageStorage.ts overview

Since v1.0.0


Exports Grouped by Category


Constructors

noop

Signature

declare const noop: any

Source

Since v1.0.0

Encoded

Encoded (type alias)

Signature

type Encoded = {
  /**
   * Save the provided message and its associated metadata.
   */
  readonly saveEnvelope: (options: {
    readonly envelope: Envelope.Envelope.Encoded
    readonly primaryKey: string | null
    readonly deliverAt: number | null
  }) => Effect.Effect<SaveResult.Encoded, PersistenceError>

  /**
   * Save the provided `Reply` and its associated metadata.
   */
  readonly saveReply: (reply: Reply.ReplyEncoded<any>) => Effect.Effect<void, PersistenceError>

  /**
   * Retrieves the replies for the specified requests.
   *
   * - Un-acknowledged chunk replies
   * - WithExit replies
   */
  readonly repliesFor: (requestIds: Array<string>) => Effect.Effect<Array<Reply.ReplyEncoded<any>>, PersistenceError>

  /**
   * Retrieves the unprocessed messages for the given shards.
   *
   * A message is unprocessed when:
   *
   * - Requests that have no WithExit replies
   *   - Or they have no unacknowledged chunk replies
   * - The latest AckChunk envelope
   * - All Interrupt's for unprocessed requests
   */
  readonly unprocessedMessages: (
    shardIds: ReadonlyArray<number>,
    now: number
  ) => Effect.Effect<
    Array<{
      readonly envelope: Envelope.Envelope.Encoded
      readonly lastSentReply: Option.Option<Reply.ReplyEncoded<any>>
    }>,
    PersistenceError
  >

  /**
   * Retrieves the unprocessed messages by id.
   */
  readonly unprocessedMessagesById: (
    messageIds: ReadonlyArray<Snowflake.Snowflake>,
    now: number
  ) => Effect.Effect<
    Array<{
      readonly envelope: Envelope.Envelope.Encoded
      readonly lastSentReply: Option.Option<Reply.ReplyEncoded<any>>
    }>,
    PersistenceError
  >

  /**
   * Reset the mailbox state for the provided address.
   */
  readonly resetAddress: (address: EntityAddress) => Effect.Effect<void, PersistenceError>
}

Source

Since v1.0.0

EncodedRepliesOptions (type alias)

Signature

type EncodedRepliesOptions<A> = {
  readonly existingRequests: Array<string>
  readonly newRequests: Array<string>
  readonly cursor: Option.Option<A>
}

Source

Since v1.0.0

EncodedUnprocessedOptions (type alias)

Signature

type EncodedUnprocessedOptions<A> = {
  readonly existingShards: Array<number>
  readonly newShards: Array<number>
  readonly cursor: Option.Option<A>
}

Source

Since v1.0.0

Memory

MemoryDriver (class)

Signature

declare class MemoryDriver

Source

Since v1.0.0

MemoryEntry (type alias)

Signature

type MemoryEntry = {
  readonly envelope: Envelope.Request.Encoded
  lastReceivedChunk: Option.Option<Reply.ChunkEncoded<any>>
  replies: Array<Reply.ReplyEncoded<any>>
}

Source

Since v1.0.0

SaveResult

SaveResult

Signature

declare const SaveResult: any

Source

Since v1.0.0

SaveResult (type alias)

Signature

type SaveResult<R> = SaveResult.Success | SaveResult.Duplicate<R>

Source

Since v1.0.0

SaveResult (namespace)

Source

Since v1.0.0

Success (interface)

Signature

export interface Success {
  readonly _tag: "Success"
}

Source

Since v1.0.0

Duplicate (interface)

Signature

export interface Duplicate<R extends Rpc.Any> {
  readonly _tag: "Duplicate"
  readonly originalId: Snowflake.Snowflake
  readonly lastReceivedReply: Option.Option<Reply.Reply<R>>
}

Source

Since v1.0.0

DuplicateEncoded (interface)

Signature

export interface DuplicateEncoded {
  readonly _tag: "Duplicate"
  readonly originalId: Snowflake.Snowflake
  readonly lastReceivedReply: Option.Option<Reply.ReplyEncoded<any>>
}

Source

Since v1.0.0

Constructor (interface)

Signature

export interface Constructor extends Data.TaggedEnum.WithGenerics<1> {
  readonly taggedEnum: SaveResult<this["A"]>
}

Source

Since v1.0.0

Encoded (type alias)

Signature

type Encoded = SaveResult.Success | SaveResult.DuplicateEncoded

Source

Since v1.0.0

SaveResultEncoded

Signature

declare const SaveResultEncoded: any

Source

Since v1.0.0

constructors

make

Signature

declare const make: (
  storage: Omit<MessageStorage["Type"], "registerReplyHandler">
) => Effect.Effect<MessageStorage["Type"]>

Source

Since v1.0.0

makeEncoded

Signature

declare const makeEncoded: (encoded: Encoded) => Effect.Effect<MessageStorage["Type"], never, Snowflake.Generator>

Source

Since v1.0.0

context

MessageStorage (class)

Signature

declare class MessageStorage

Source

Since v1.0.0

layers

layerMemory

Signature

declare const layerMemory: Layer.Layer<MessageStorage | MemoryDriver, never, ShardingConfig>

Source

Since v1.0.0

layerNoop

Signature

declare const layerNoop: Layer.Layer<MessageStorage>

Source

Since v1.0.0