Hi Beam community! I'm interested in trying to implement a runner with my company's execution environment but I'm struggling to get started. I've read the docs page <https://beam.apache.org/contribute/runner-guide/#testing-your-runner> on implementing a runner but it's quite high level. Anyone have any concrete suggestions on getting started?
I've started by cloning and running the hello world example <https://github.com/apache/beam-starter-python>. I've then subclassed ` PipelineRunner <https://github.com/apache/beam/blob/9d0fc05d0042c2bb75ded511497e1def8c218c33/sdks/python/apache_beam/runners/runner.py#L103>` to create my own custom runner but at this point I'm a bit stuck. My custom runner just looks like class CustomRunner(runner.PipelineRunner): def run_pipeline(self, pipeline, options): self.visit_transforms(pipeline, options) And when using it I get an error about not having implemented "Impulse" NotImplementedError: Execution of [<Impulse(PTransform) label=[Impulse]>] not implemented in runner <my_app.app.CustomRunner object at 0x135d9ff40>. Am I going about this the right way? Are there tests I can run my custom runner against to validate it beyond just running the hello world example? I'm finding myself just digging through the beam source to try to piece together how a runner works and I'm struggling to get a foothold. Any guidance would be greatly appreciated, especially if anyone has any experience implementing their own python runner. Thanks in advance! Also, could I get a Slack invite? Cheers, Joey