Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions pip/pip-407.md
Original file line number Diff line number Diff line change
@@ -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
<V> TypedMessageBuilder<V> newMessage(Schema<V> 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