Skip to main content

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.

PayloadConverterPayloadCodecExternalStorage
PurposeSerialize types to bytesTransform encoded payloads (encrypt, compress)Offload large payloads to external store
Must be deterministicYesNoNo
DefaultJSON serializationNone (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.