Input | Java | Go(Pulsar) | Python | WASM |
---|---|---|---|---|
Custom SerDe | ✅ | ❌ | ✅ | ? |
Schema - Avro | ✅ | ❌ | ✅ | ? |
Schema - JSON | ✅ | ❌ | ✅ | ? |
Schema - Protobuf | ✅ | ❌ | ❌ | ? |
Schema - KeyValue | ✅ | ❌ | ❌ | ? |
Schema - AutoSchema | ✅ | ❌ | ❌ | ? |
Scehma - Protobuf Native | ✅ | ❌ | ❌ | ? |
e-2-e encryption | ✅ | ❌ | ✅ | ✅ |
maxMessageRetries | ✅ | ❌ | ❌ | ✅ |
dead-letter policy | ✅ | ❌ | ❌ | ✅ |
SubscriptionName | ✅ | ✅ | ✅ | ✅ |
SubscriptionType | ✅ | ✅ | ✅ | ✅ |
SubscriptionInitialPosition | ✅ | ❌ | ✅ | ✅ |
AutoAck | ✅ | ✅ | ✅ | ✅ |
Output | Java | Go(Pulsar) | Python | WASM |
---|---|---|---|---|
Custom SerDe | ✅ | ❌ | ✅ | ? |
Schema - Avro | ✅ | ❌ | ✅ | ? |
Schema - JSON | ✅ | ❌ | ✅ | ? |
Schema - Protobuf | ✅ | ❌ | ❌ | ? |
Schema - KeyValue | ✅ | ❌ | ❌ | ? |
Schema - AutoSchema | ✅ | ❌ | ❌ | ? |
Schema - Protobuf Native | ✅ | ❌ | ❌ | ? |
useThreadLocalProducers | ✅ | ❌ | ❌ | ✅ |
Key-based Batcher | ✅ | ✅ | ✅ | ✅ |
e-2-e encryption | ✅ | ❌ | ✅ | ✅ |
Compression | ✅ | ✅ | ✅ | ✅ |
Other | Java | Go(Pulsar) | Python | WASM |
---|---|---|---|---|
Resources | ✅ | ✅ | ✅ | ✅ |
At-most-once | ✅ | ✅ | ✅ | ✅ |
At-least-once | ✅ | ✅ | ✅ | ✅ |
Effectively-once | ✅ | ❌ | ✅ | ❌ |
.wasm
module first before creating Pulsar Functions.
snctl
, pulsarctl
, pulsar-admin
command, the REST API, or terraform
to deploy a Pulsar function to your cluster.
You can create a WASM Pulsar function by using a local .wasm
file or an uploaded Pulsar functions package(recommend).
--py
to specify the function file and specify the --custom-runtime-options '{"genericKind": "wasm"}'
to make it work.