In-memory

Development and tests only - single JVM, lost on restart, and asked for by name.

idempotency-inmemory keeps records in a map inside one JVM. It is for local development and tests.

idempotency:
  store-type: in-memory
YAML

What it actually gives you

An in-memory record set deduplicates within one JVM until it restarts.

That is the whole guarantee, and both halves of it are limits.

It also does not support joined completion.

Why it must be asked for by name

auto does not fall back to the in-memory store. This is not a property anything should acquire by accident - see choosing a store for the failure that rule prevents.

Setting store-type: in-memory is a statement that a single JVM and a lost record set are acceptable here. That is true in a test and on a developer machine. It is worth checking that the setting cannot reach a deployed environment through a shared configuration file.

In tests

This is the store to use in integration tests that exercise the idempotent boundary itself. The store contract runs on H2 as well, so a test that needs joined completion can use JDBC against H2 instead.