@@ -17,6 +17,8 @@ namespace NYdb::NTable {
1717
1818namespace NYdb ::NTopic {
1919
20+ using TTransaction = NTable::TTransaction;
21+
2022// ! Settings for write session.
2123struct TWriteSessionSettings : public TRequestSettings <TWriteSessionSettings> {
2224 using TSelf = TWriteSessionSettings;
@@ -190,9 +192,9 @@ struct TWriteMessage {
190192 FLUENT_SETTING (TMessageMeta, MessageMeta);
191193
192194 // ! Transaction id
193- FLUENT_SETTING_OPTIONAL (std::reference_wrapper<NTable:: TTransaction>, Tx);
195+ FLUENT_SETTING_OPTIONAL (std::reference_wrapper<TTransaction>, Tx);
194196
195- const NTable:: TTransaction* GetTxPtr () const
197+ TTransaction* GetTxPtr () const
196198 {
197199 return Tx_ ? &Tx_->get () : nullptr ;
198200 }
@@ -204,7 +206,9 @@ class ISimpleBlockingWriteSession : public TThrRefBase {
204206 // ! Write single message. Blocks for up to blockTimeout if inflight is full or memoryUsage is exceeded;
205207 // ! return - true if write succeeded, false if message was not enqueued for write within blockTimeout.
206208 // ! no Ack is provided.
207- virtual bool Write (TWriteMessage&& message, const TDuration& blockTimeout = TDuration::Max()) = 0;
209+ virtual bool Write (TWriteMessage&& message,
210+ NTable::TTransaction* tx = nullptr ,
211+ const TDuration& blockTimeout = TDuration::Max()) = 0;
208212
209213
210214 // ! Write single message. Deprecated method with only basic message options.
@@ -249,15 +253,17 @@ class IWriteSession {
249253
250254 // ! Write single message.
251255 // ! continuationToken - a token earlier provided to client with ReadyToAccept event.
252- virtual void Write (TContinuationToken&& continuationToken, TWriteMessage&& message) = 0;
256+ virtual void Write (TContinuationToken&& continuationToken, TWriteMessage&& message,
257+ NTable::TTransaction* tx = nullptr ) = 0;
253258
254259 // ! Write single message. Old method with only basic message options.
255260 virtual void Write (TContinuationToken&& continuationToken, std::string_view data, std::optional<uint64_t > seqNo = std::nullopt ,
256261 std::optional<TInstant> createTimestamp = std::nullopt ) = 0;
257262
258263 // ! Write single message that is already coded by codec.
259264 // ! continuationToken - a token earlier provided to client with ReadyToAccept event.
260- virtual void WriteEncoded (TContinuationToken&& continuationToken, TWriteMessage&& params) = 0;
265+ virtual void WriteEncoded (TContinuationToken&& continuationToken, TWriteMessage&& params,
266+ NTable::TTransaction* tx = nullptr ) = 0;
261267
262268 // ! Write single message that is already compressed by codec. Old method with only basic message options.
263269 virtual void WriteEncoded (TContinuationToken&& continuationToken, std::string_view data, ECodec codec, uint32_t originalSize,
0 commit comments