Skip to content

Add Netty-based frame handler #1663

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

Merged
merged 1 commit into from
Aug 4, 2025
Merged

Add Netty-based frame handler #1663

merged 1 commit into from
Aug 4, 2025

Conversation

acogoluegnes
Copy link
Contributor

No description provided.

@lukebakken
Copy link
Contributor

Better performance?

@acogoluegnes
Copy link
Contributor Author

Better performance?

Early tests with a simplistic workload showed a 10% increase in throughput but increased latency (compared to blocking IO). With a limited rate 10 K msg / s, the latency is comparable to the blocking IO.

The goal is to make Netty the default (and maybe only) IO layer. This way we could get rid of a significant amount of code (our NIO layer) and benefit from Netty flexibility (NIO by default, but also native IO options).

@acogoluegnes acogoluegnes added this to the 5.27.0 milestone Aug 4, 2025
This commit adds a Netty-based frame handler. All network IO are based
on Netty when this frame handler is in use. The client library can
benefit of all the flexibility and advantages of Netty: simple API,
pluggable IO layer (Java NIO by default, or e.g. native Epoll on Linux).

The Netty frame handler deprecates the internal one using Java NIO.

The blocking IO frame handler is still the default one in 5.x. The
Netty frame handler should be the only one in 6.x.

Fixes #1664
@acogoluegnes acogoluegnes marked this pull request as ready for review August 4, 2025 13:38
@acogoluegnes acogoluegnes merged commit c19a039 into main Aug 4, 2025
5 checks passed
@acogoluegnes acogoluegnes deleted the netty-frame-handler branch August 4, 2025 13:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants