MessageStorage.ts overview
Since v1.0.0
Exports Grouped by Category
Constructors
noop
Signature
declare const noop: any
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>
}
Since v1.0.0
EncodedRepliesOptions (type alias)
Signature
type EncodedRepliesOptions<A> = {
readonly existingRequests: Array<string>
readonly newRequests: Array<string>
readonly cursor: Option.Option<A>
}
Since v1.0.0
EncodedUnprocessedOptions (type alias)
Signature
type EncodedUnprocessedOptions<A> = {
readonly existingShards: Array<number>
readonly newShards: Array<number>
readonly cursor: Option.Option<A>
}
Since v1.0.0
Memory
MemoryDriver (class)
Signature
declare class MemoryDriver
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>>
}
Since v1.0.0
SaveResult
SaveResult
Signature
declare const SaveResult: any
Since v1.0.0
SaveResult (type alias)
Signature
type SaveResult<R> = SaveResult.Success | SaveResult.Duplicate<R>
Since v1.0.0
SaveResult (namespace)
Since v1.0.0
Success (interface)
Signature
export interface Success {
readonly _tag: "Success"
}
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>>
}
Since v1.0.0
DuplicateEncoded (interface)
Signature
export interface DuplicateEncoded {
readonly _tag: "Duplicate"
readonly originalId: Snowflake.Snowflake
readonly lastReceivedReply: Option.Option<Reply.ReplyEncoded<any>>
}
Since v1.0.0
Constructor (interface)
Signature
export interface Constructor extends Data.TaggedEnum.WithGenerics<1> {
readonly taggedEnum: SaveResult<this["A"]>
}
Since v1.0.0
Encoded (type alias)
Signature
type Encoded = SaveResult.Success | SaveResult.DuplicateEncoded
Since v1.0.0
SaveResultEncoded
Signature
declare const SaveResultEncoded: any
Since v1.0.0
constructors
make
Signature
declare const make: (
storage: Omit<MessageStorage["Type"], "registerReplyHandler">
) => Effect.Effect<MessageStorage["Type"]>
Since v1.0.0
makeEncoded
Signature
declare const makeEncoded: (encoded: Encoded) => Effect.Effect<MessageStorage["Type"], never, Snowflake.Generator>
Since v1.0.0
context
MessageStorage (class)
Signature
declare class MessageStorage
Since v1.0.0
layers
layerMemory
Signature
declare const layerMemory: Layer.Layer<MessageStorage | MemoryDriver, never, ShardingConfig>
Since v1.0.0
layerNoop
Signature
declare const layerNoop: Layer.Layer<MessageStorage>
Since v1.0.0