Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add WriteAcks as a result of the SyncWriter operations #280

Open
Eistern opened this issue Jun 5, 2024 · 5 comments
Open

Add WriteAcks as a result of the SyncWriter operations #280

Eistern opened this issue Jun 5, 2024 · 5 comments

Comments

@Eistern
Copy link

Eistern commented Jun 5, 2024

Problem

Currently, the tech.ydb.topic.write.SyncWriter interface does not provide any technical means for users to receive and analyze the results of their send(...) operations. This lack of functionality can make it difficult for developers to ensure that their messages are being sent successfully and to troubleshoot any issues that may arise.

Proposed solution

Propagate the results of sendImpl(...).join() to the user code

@Eistern
Copy link
Author

Eistern commented Jun 5, 2024

PR published - #281 (for some reason it didn’t link automatically)

@pnv1
Copy link
Collaborator

pnv1 commented Jun 5, 2024

This was made on purpose to keep sync interface simple and not to overload it with CompletableFutures.
AsyncWriter does exactly what you want.

@Eistern
Copy link
Author

Eistern commented Jun 6, 2024

This was made on purpose to keep sync interface simple and not to overload it with CompletableFutures. AsyncWriter does exactly what you want.

There is a slight issue. We need the blocking behavior of the internal writer queue that is provided by the SyncWriter (and implementing logic on top of the tech.ydb.topic.write.QueueOverflowException is not a good idea in terms of performance). Currently, we've declared our own extension of the tech.ydb.topic.write.impl.WriterImpl to do just that, but it is still a hassle to properly open it without the use of the tech.ydb.topic.TopicClient

@pnv1
Copy link
Collaborator

pnv1 commented Jun 6, 2024

We need the blocking behavior of the internal writer queue that is provided by the SyncWriter (and implementing logic on top of the tech.ydb.topic.write.QueueOverflowException is not a good idea in terms of performance).

Ok, I got your concerns. We need some time to consider

@Myllyenko
Copy link

We need the blocking behavior of the internal writer queue that is provided by the SyncWriter (and implementing logic on top of the tech.ydb.topic.write.QueueOverflowException is not a good idea in terms of performance).

Ok, I got your concerns. We need some time to consider

@pnv1, let's return to this topic

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants