Skip to content

[Feature Request]: SolaceIO: Support binary content data payload #39875

Closed

Description

@ngibanel

What would you like to happen?

Problem statement

The Apache Beam Solace SDK currently creates every outgoing message as a JCSMP BytesXMLMessage and writes the record payload with writeBytes(...). This is the historical XML-data behavior.

Solace recommends binary data for new applications. The SDK must also support JCSMP TextMessage and BytesMessage, while preserving existing users' behavior and source compatibility. The same payload model must work for both writing and reading.

Proposed change

Extend Solace.Record with a per-record payload type. Support three payload types:

  • BYTES_XML: the existing XML-data behavior using BytesXMLMessage and writeBytes(...).
  • TEXT: a JCSMP TextMessage using setText(...).
  • BYTES: a JCSMP BytesMessage using setData(...).

BYTES_XML is the default, so existing code continues to produce the same kind of message. The existing byte[] payload field remains the common representation for all three types. The reader detects the concrete JCSMP message type and exposes the matching payload type in the resulting Solace.Record.

Issue Priority

Priority: 3 (nice-to-have improvement)

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: Infrastructure
  • Component: Spark Runner
  • Component: Flink Runner
  • Component: Prism Runner
  • Component: Twister2 Runner
  • Component: Hazelcast Jet Runner
  • Component: Google Cloud Dataflow Runner

Activity

  1. ngibanel commented on Aug 24, 2026

    @ngibanel
    ContributorAuthor

    .take-issue

  2. stankiewicz commented on Aug 28, 2026

    @stankiewicz
    Contributor

    thanks for raising this and picking up the work!

  3. added this to the 2.77.0 Release milestone on Sep 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions