[ https://issues.apache.org/jira/browse/BEAM-5676?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16739597#comment-16739597 ]
Logan HAUSPIE commented on BEAM-5676: ------------------------------------- I will do it next month if no one else has done it before me > Allow to change the PubsubClientFactory when using PubsubIO > ----------------------------------------------------------- > > Key: BEAM-5676 > URL: https://issues.apache.org/jira/browse/BEAM-5676 > Project: Beam > Issue Type: Improvement > Components: io-java-gcp > Affects Versions: 2.7.0 > Reporter: Logan HAUSPIE > Priority: Major > Original Estimate: 24h > Remaining Estimate: 24h > > When we use PubSub to push or pull messages, we currently have no choice of > serialization implementation because PubsubIO use internaly the > *_PubsubJsonClient.FACTORY_* of type _*PubsubJsonClientFactory*_ to serialize > or deserialize messages. > It should be nice to be able to set a different factory (e.g. > *_PubsubGrpcClientFactory_*) to decrease the size of messages (and then > decrease the price of using Pubsub). > > I guess It could be possible to write something like: > {{PubsubIO.Write<PubsubMessage> write =}} > {{ PubsubIO.writeMessages()}} > {{ .to("projects/project/topics/topic")}} > {{ *.withFactory(PubsubGrpcClient.FACTORY)*}} > {{ .withTimestampAttribute("timestamp")}}{{;}} > or > {{PubsubIO.Read<PubsubMessage> read = }} > {{ PubsubIO.readMessages()}} > {{ .fromSubscription("projects/project/subscriptions/name")}} > {{ *.withFactory(PubsubGrpcClient.FACTORY)*}} > {{ .withTimestampAttribute("timestamp");}} > -- This message was sent by Atlassian JIRA (v7.6.3#76005)