GitHub user nlu90 added a comment to the discussion: Pulsar Functions lifecycle and depolyment details.
1. Running Function Worker with Pulsar Brokers is fine for testing purposes. In a production env, running Function Worker and Pulsar Broker separately is recommended so your Broker will be more stable. The ThreadRuntime will launch your function inside Function Worker's thread pool, and ProcessRuntime will launch separate JVM processes for your functions. 2.a. You can control how many instances for your function via `pulsar-admin functions create --parallelism `. Once submitted, it won't change during the runtime. 2.b. You are responsible for making your function thread-safe and not blocking on the process method. 3.a. You only need to send the request once. If the same request is submitted multiple times, later requests will be rejected due to the `Already Exists` error. 3.b. Function Worker will try to shut down the instance for 10 seconds timeout gracefully. After 10 seconds, it will forcibly terminate the process. One thing to notice is that, as long as the subscription is not cleaned, the newly updated function instance will start from where the old instances stopped to continue the message processing. GitHub link: https://github.com/apache/pulsar/discussions/20195#discussioncomment-5773367 ---- This is an automatically sent email for commits@pulsar.apache.org. To unsubscribe, please send an email to: commits-unsubscr...@pulsar.apache.org