From 689c16a359a4c73056f416e6ba1fb297ee472343 Mon Sep 17 00:00:00 2001 From: Omar Yasin Date: Fri, 28 Feb 2025 01:17:00 -0800 Subject: [PATCH] [improve][pip] PIP-407 Add a newMessage API to create a message with a schema and transaction (#23950) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Ă“mar Kjartan Yasin Co-authored-by: Lari Hotari --- pip/pip-407.md | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 pip/pip-407.md diff --git a/pip/pip-407.md b/pip/pip-407.md new file mode 100644 index 0000000000000..e4a421144bb09 --- /dev/null +++ b/pip/pip-407.md @@ -0,0 +1,42 @@ +# PIP-407: Add a newMessage API to create a message with a schema and transaction + +# Background knowledge + +Pulsar allows messages to be produced with a schema and with a transaction. The producer API allows for messages to +be created with a schema or with a transaction. + +# Motivation + +The producer API does not expose a method to publish a message with a schema and transaction. This is a gap in the +public API that can be addressed by adding a new overload that creates a message with a schema and a transaction. + +# Goals + +Make it possible to produce a message that has a custom schema within a transaction. + +## In Scope + +Add a new method to the Producer public API, and corresponding implementation, that allows for messages to be created +with a custom schema and a transaction. + +## Public-facing Changes + +Add a new method to Producer to create a Message that accepts a schema and transaction + +### Public API + +#### Producer.java + +```java + TypedMessageBuilder newMessage(Schema schema, + Transaction txn); +``` + +# Backward & Forward Compatibility + +Fully compatible. + +# Links + +* Mailing List discussion thread: https://lists.apache.org/thread/f8n0fbjj67cpzprxd8qp582ncy7hwtdn +* Mailing List voting thread: https://lists.apache.org/thread/15xmf3qb5r252cvmhp5lbyo62bktpwfj