Data handling - Python SDK
All data sent to and from the Temporal Service passes through the Data Converter pipeline. The pipeline has three layers that handle different concerns:
User code → PayloadConverter → PayloadCodec → ExternalStorage → Temporal Service
| PayloadConverter | PayloadCodec | ExternalStorage | |
|---|---|---|---|
| Purpose | Serialize types 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) |
By default, Temporal uses JSON serialization with no codec and no external storage. You only need to customize these layers when your application requires non-JSON types, encryption, or payload offloading.
For a deeper conceptual explanation, see the Data Conversion encyclopedia.