Data handling - Python SDK
All data sent to and from the Temporal Service passes through the Data Converter. The Data Converter has three layers that handle different concerns:
Application data → PayloadConverter → PayloadCodec → ExternalStorage → Temporal Service
Of these three layers, only the PayloadConverter is required. Temporal uses a default PayloadConverter that handles JSON serialization. The PayloadCodec and ExternalStorage layers are optional. You only need to customize these layers when your application requires non-JSON types, encryption, or payload offloading.
| PayloadConverter | PayloadCodec | ExternalStorage | |
|---|---|---|---|
| Purpose | Serialize application data to bytes | Transform encoded payloads (encrypt, compress) | Offload large payloads to external store |
| Must be deterministic | Yes | No | No |
| Default | JSON serialization | None (passthrough) | None (passthrough) |
For a deeper conceptual explanation, see the Data Conversion encyclopedia.