effect-tea-persistent
    Preparing search index...
    operation: {
        atLeastOnce: <Operation, Message, R>(
            run: (operation: Operation) => Effect.Effect<Message, never, R>,
        ) => Runner<Operation, Message, R>;
        atMostOnce: <Operation, Message, R>(
            run: (operation: Operation) => Effect.Effect<Message, never, R>,
            unknown: (operation: Operation) => Message,
        ) => Runner<Operation, Message, R>;
        digest: <Operation, Message, R>(
            run: (
                operation: Operation,
                key: IdempotencyKey,
            ) => Effect.Effect<Message, never, R>,
        ) => Runner<Operation, Message, R>;
        droppable: <Operation, Message, R>(
            run: (
                operation: Operation,
            ) => Effect.Effect<Message, never, WithoutEntities<R>>,
        ) => Runner<Operation, Message, R>;
        <Operation, Message, R>(
            run: (
                operation: Operation,
                key: IdempotencyKey,
            ) => Effect<Message, never, R>,
        ): Runner<Operation, Message, R>;
    } = ...

    The runner of an operation, with its delivery: what a crash during the operation does to it. Called as a function, it declares an idempotent runner: one run again after a crash, under the same idempotency key, which it passes to the service it calls.

    Type Declaration

    • ReadonlyatLeastOnce: <Operation, Message, R>(
          run: (operation: Operation) => Effect.Effect<Message, never, R>,
      ) => Runner<Operation, Message, R>

      An operation run again after a crash, with no idempotency key: for an action that is the same however many times it runs, as a request to another entity under a name.

    • ReadonlyatMostOnce: <Operation, Message, R>(
          run: (operation: Operation) => Effect.Effect<Message, never, R>,
          unknown: (operation: Operation) => Message,
      ) => Runner<Operation, Message, R>

      An operation never run again after a crash, as an email a second copy of is worse than none. An operation the process died during delivers the message that unknown gives instead, which says that its outcome is not known.

    • Readonlydigest: <Operation, Message, R>(
          run: (
              operation: Operation,
              key: IdempotencyKey,
          ) => Effect.Effect<Message, never, R>,
      ) => Runner<Operation, Message, R>

      An idempotent operation given the digest of its idempotency key, for a service that caps a key's length.

    • Readonlydroppable: <Operation, Message, R>(
          run: (
              operation: Operation,
          ) => Effect.Effect<Message, never, WithoutEntities<R>>,
      ) => Runner<Operation, Message, R>

      An operation that acts on nothing, which a state may drop or change while it runs (decision 0128). A runner whose services hold Entities does not compile, since a droppable operation sends to no entity (decision 0129).