I'm writing a python wrappers for KinesisIO and I encountered a problem that Read transform creates a PCollection with KinesisRecord class which's coder by default is assigned as 'beam:coders:javasdk:0.1'. I managed to register this coder using CoderTranslatorRegistrar which adds the coder to the KNOWN_CODER_URNS and therefore is sent with my custom urn.
Kafka's cross language Write transform uses KV<>, is encoded by default in beam. But I can't see how KafkaRecordCoder is translated in cross-language usage to python? I can't see any place in code where it gets registered. I just don't get how KafkaIO.Read works in cross-language. Could someone clarify me how does it work? Thanks in advance!