ZioJsonDataConverter
zio.temporal.json.ZioJsonDataConverter
object ZioJsonDataConverter
Entry point for constructing a DataConverter that uses zio-json for all user-owned payloads. Jackson is deliberately excluded from the chain — zio-temporal is Scala-only and zio-json covers the full encoding surface.
Chain ordering (Temporal's DefaultDataConverter tries each in order):
- NullPayloadConverter — null values
- ByteArrayPayloadConverter — raw byte buffers
- ProtobufJsonPayloadConverter — Temporal-internal protobuf types like
WorkflowExecution - TemporalInternalsPayloadConverter — an allow-listed set of Temporal Java SDK internal POJOs (currently
WorkflowRetryerInternal$SerializableRetryOptions) that leak into the chain viaWorkflow.retry'smutableSideEffectand for which no user-provided codec exists. The upstream SDK relies on Jackson's reflective fallback here; we substitute a surgical reflective encoder. - ZioJsonPayloadConverter encoding
json/zio— user-owned payloads; claimed first on encode. - ZioJsonPayloadConverter encoding
json/plain— decode-only compatibility with recorded workflow histories that were originally written by the Jackson-basedDefaultDataConverter.json/plainis just vanilla JSON, so the same registry decodes it correctly. Position matters: on encode,DefaultDataConverterstops at the first converter returning non-empty, so thejson/zioinstance wins and fresh payloads never get stampedjson/plain.
Attributes
- Graph
-
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
ZioJsonDataConverter.type
Members list
In this article