effect-tea-persistent
    Preparing search index...

    Type Alias Runner<Operation, Message, R>

    Runner:
        | Readonly<
            {
                delivery: "Idempotent";
                run: (
                    operation: Operation,
                    key: IdempotencyKey,
                ) => Effect.Effect<Message, never, R>;
            },
        >
        | Readonly<
            {
                delivery: "IdempotentDigest";
                run: (
                    operation: Operation,
                    key: IdempotencyKey,
                ) => Effect.Effect<Message, never, R>;
            },
        >
        | Readonly<
            {
                delivery: "AtLeastOnce";
                run: (operation: Operation) => Effect.Effect<Message, never, R>;
            },
        >
        | Readonly<
            {
                delivery: "AtMostOnce";
                run: (operation: Operation) => Effect.Effect<Message, never, R>;
                unknown: (operation: Operation) => Message;
            },
        >
        | Readonly<
            {
                delivery: "Droppable";
                run: (operation: Operation) => Effect.Effect<Message, never, R>;
            },
        >

    How an operation runs, and what a crash does to it, declared for each kind of operation (decision 0011). It sees the operation, never the state: what it uses is in the operation (decision 0018).

    Type Parameters

    • Operation
    • Message
    • R

    Type Declaration

    • Readonly<
          {
              delivery: "Idempotent";
              run: (
                  operation: Operation,
                  key: IdempotencyKey,
              ) => Effect.Effect<Message, never, R>;
          },
      >

      Runs again with the same idempotency key, which it passes on: the world recognises it.

    • Readonly<
          {
              delivery: "IdempotentDigest";
              run: (
                  operation: Operation,
                  key: IdempotencyKey,
              ) => Effect.Effect<Message, never, R>;
          },
      >

      Runs again as an idempotent one does, given the digest of its idempotency key (decision 0123).

    • Readonly<
          {
              delivery: "AtLeastOnce";
              run: (operation: Operation) => Effect.Effect<Message, never, R>;
          },
      >

      Runs again, and may act twice.

    • Readonly<
          {
              delivery: "AtMostOnce";
              run: (operation: Operation) => Effect.Effect<Message, never, R>;
              unknown: (operation: Operation) => Message;
          },
      >

      Never runs again: an activation that finds it with no completion delivers unknown, since it may have acted.

    • Readonly<
          {
              delivery: "Droppable";
              run: (operation: Operation) => Effect.Effect<Message, never, R>;
          },
      >

      Acts on nothing: a state may drop it or change it while it runs, which interrupts it, and a crash runs it again. It sends to no entity and creates none, since a request is an act on the receiver (decision 0128).