Python SDK Roadmap
Last updated on Aug 2026.
Python Version Support
Apache Beam 2.73.0 and higher support Python 3.10, 3.11, 3.12, 3.13 and 3.14. Beam aims to support new Python minor versions in a timely manner:
Cross-Language Connectors and Auto-Generated Wrappers
Rather than reimplementing storage connectors natively from scratch in Python, the preferred approach for Beam data connectors is leveraging mature Java I/O connectors via Beam’s cross-language (xlang) framework:
- Preferred Cross-Language Path: Core I/O connectors (such as Kafka, Apache Iceberg, Delta Lake, Snowflake, and JDBC) are authored as SchemaTransforms in Java and exposed to Python pipelines. Python users can invoke them seamlessly or configure them via the simplified Managed I/O API.
- Auto-Generated Transform Wrappers: The Python SDK natively supports generating wrappers for external transforms (design doc). By discovering SchemaTransforms registered in expansion services, the Python SDK automatically provides idiomatic, typed Python wrappers and documentation without requiring developers to manually write and maintain boilerplate code.
AI and Machine Learning (Beam ML)
Machine learning and artificial intelligence represent the primary focus area for native Python transform and connector development:
- RunInference: High-throughput, production-grade model inference supporting leading ML frameworks (including PyTorch, TensorFlow, TensorRT, ONNX, and Hugging Face) in both batch and streaming pipelines.
- Vector Database Connectors: Native integrations and configurations for vector databases (such as Qdrant, Pinecone, and Vertex AI Vector Search), supporting large-scale embedding generation and Retrieval-Augmented Generation (RAG) workflows.
- LLM & Multi-Model Workflows: Native patterns for model evaluation, multi-model ensemble pipelines, and orchestration with modern AI systems.
Learn more about Beam’s machine learning capabilities in the Beam ML Documentation.
Contributions and Feedback
Contributions and feedback are welcome!
If you are interested in helping, you can select an unassigned issue on the Kanban board and assign it to yourself. If you cannot assign the issue to yourself, comment on the issue. When submitting a new PR, please tag @damccorm, and @tvalentyn.
To report a Python related issue, create a GitHub Issue in Python label and cc: [~damccorm] and [~tvalentyn] in a comment. The best way to help us identify and investigate the issue is with a minimal pipeline that reproduces the issue.
You can also discuss encountered issues on user@ or dev@ mailing lists as appropriate.
Last updated on 2026/09/02
Have you found everything you were looking for?
Was it all useful and clear? Is there anything that you would like to change? Let us know!

