ULR = Universal Local Runner Largely meaning it's a Portable Local Runner, using Bean Portability, as that allows it to be used for any SDK.
The python one replaced a Java attempt at one which wasn't complete enough, and wasn't as good as the existing (and current) Java Direct Runner. Prism (a Go ULR ;) ) is largely a response to Go direct runner being not great to begin with, while also being easier to distribute to other SDKs, by virtue of being a single static binary (Go's specialty). The python runner likely won't go away any time soon, but by making all the SDKs have the same single runner by default, we provide a more consistent experience across SDKs and their documentation about capabilities, which has been very inconsistent across local experiences and testing. On Tue, Jun 17, 2025, 6:55 PM Joey Tran <joey.t...@schrodinger.com> wrote: > > On Tue, Jun 17, 2025 at 7:52 PM Robert Bradshaw <rober...@waymo.com> > wrote: > >> On Tue, Jun 17, 2025 at 3:57 PM Robert Burke <rob...@frantil.com> wrote: >> > >> > +1 >> > >> > You should be able to use the Prism runner to implement this locally. >> > >> > Prism passes the full suite of java MultimapState tests, and will >> ensure the implementation works on runners like Google Cloud Dataflow. >> > >> > I do not recommend spending time implementing multimap state in the >> python direct runner if it's not already supported. >> >> Of course it's already supported in the local Python ULR :) >> >> >> https://github.com/apache/beam/blob/master/sdks/python/apache_beam/runners/portability/fn_api_runner/worker_handlers.py#L974 >> >> This will, of course, be a much welcome addition to the Python SDK, >> and +1 to making sure it works on Prism as well. >> > > What's ULR stand for? > > Does this mean that when Prism runner becomes fully supported, the python > worker infrastructure like the worker handlers and won't have any further > use :'( ? Or are they used for more than just the python DirectRunner > > > > >> >> > On Tue, Jun 17, 2025, 10:58 AM Shunping Huang via dev < >> dev@beam.apache.org> wrote: >> >> >> >> +1 >> >> I think it will be great to have that in Python SDK. >> >> >> >> On Sun, Jun 15, 2025 at 5:22 PM Rakesh Kumar <rakeshcu...@gmail.com> >> wrote: >> >>> >> >>> Hey Everyone, >> >>> >> >>> While updating the stateful processing document [1] I noticed that >> Java SDK has MultimapState [2] but it is missing from Python SDK. This was >> introduced as part of this PR: https://github.com/apache/beam/pull/23491 >> >>> If no one has an objection, then I would like to implement this as >> part of the Python SDK. >> >>> >> >>> Thank you, >> >>> Rakesh >> >>> >> >>> >> >>> 1. https://github.com/apache/beam/pull/35209 >> >>> 2. >> https://docs.google.com/document/d/1zm16QCxWEWNy4qW1KKoA3DmQBOLrTSPimXiqQkTxokc/edit?tab=t.0#heading=h.f4ova073h88e >> >>> >> >