[Feature Request][Go SDK]: NATS IO connector

What would you like to happen?

Create a NATS JetStream IO connector with a Read transform for consuming messages and a Write transform for producing messages.

Features in a first iteration:

Read

  • Read messages from a subject in a stream with an existing durable consumer
  • Allow the user to configure watermark estimation based on publishing time or processing time
  • Deduplicate messages based on message ID

Write

  • Write messages to a subject in a stream
  • Rely on the NATS server built-in deduplication of messages based on message ID

Issue Priority

Priority: 2 (default / most feature requests should be filed as P2)

Issue Components

  • Component: Python SDK
  • Component: Java SDK
  • Component: Go SDK
  • Component: Typescript SDK
  • Component: IO connector
  • Component: Beam YAML
  • Component: Beam examples
  • Component: Beam playground
  • Component: Beam katas
  • Component: Website
  • Component: Spark Runner
  • Component: Flink Runner
  • Component: Samza Runner
  • Component: Twister2 Runner
  • Component: Hazelcast Jet Runner
  • Component: Google Cloud Dataflow Runner