xintongsong commented on code in PR #499: URL: https://github.com/apache/flink-agents/pull/499#discussion_r2735290878
########## docs/content/docs/faq/faq.md: ########## @@ -61,13 +61,35 @@ To use cross-language resources, please test the functionality by deploying to a ## Q3: Should I choose Java or Python? -When choosing between Flink Agents' Java API and Python API, besides the team's experience and preferences, there's another thing needs to be considered. Flink Agents provides built-in integration supports for many echosystem providers. Some of these supports are in only one language. While you can still use them when building agents in another language, leveraging Flink Agents' cross-language supports, this comes with a limitation of not supporting async execution, which may bring performance concerns. +When choosing between Flink Agents' Java API and Python API, consider the following factors: -The following matrix shows the native integration support status of providers over languages. For those marked as ❌, cross-langauge is needed thus async execution is not supported. +1. **Team experience and preferences** +2. **JDK version** (for Java users) +3. **Provider integration support** Review Comment: ```suggestion 3. **Integration supports** ``` ########## docs/content/docs/faq/faq.md: ########## @@ -61,13 +61,35 @@ To use cross-language resources, please test the functionality by deploying to a ## Q3: Should I choose Java or Python? -When choosing between Flink Agents' Java API and Python API, besides the team's experience and preferences, there's another thing needs to be considered. Flink Agents provides built-in integration supports for many echosystem providers. Some of these supports are in only one language. While you can still use them when building agents in another language, leveraging Flink Agents' cross-language supports, this comes with a limitation of not supporting async execution, which may bring performance concerns. +When choosing between Flink Agents' Java API and Python API, consider the following factors: -The following matrix shows the native integration support status of providers over languages. For those marked as ❌, cross-langauge is needed thus async execution is not supported. +1. **Team experience and preferences** +2. **JDK version** (for Java users) +3. **Provider integration support** + +### Understanding Async Execution and JDK Versions + +Async execution can significantly improve performance by allowing multiple operations to run concurrently. However, async execution support varies by language and JDK version: + +| Environment | Async Execution Support | +|-------------|------------------------| +| Python | ✅ Supported | +| Java (JDK 21+) | ✅ Supported (via Continuation API) | +| Java (JDK < 21) | ❌ Not supported (falls back to synchronous execution) | + +This is important because: + +- **For Python users**: Async execution is always available. +- **For Java users on JDK 21+**: Async execution is available, so using native integrations (instead of cross-language) matters for performance. +- **For Java users on JDK < 21**: Async execution is **not available regardless of whether you use native or cross-language integrations**. Therefore, the cross-language async limitation has **no additional performance impact** for these users. Review Comment: We are talking about the cross-language async limitation here, which is never mentioned / explained before. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
