Some meetups are focussed on development of netty itself and hence only contributors are invited to these meetups. However, we share all details about the meetup afterwards for benefit of everyone involved with netty.
September 28, 2021
This meetup was focussed on discussing HTTP/2 API changes (https://github.com/netty/netty/pull/11603).
* H2 Encoder and flow controller on the child channel → should we move to parent channel to start? Avoid potential re-ordering and have complete visibility on connection level state?
- stakeholders: eric, <nitesh, norman, chris, scott>
H2 Protocol Upgrades → should we support h2c, what about websockets?
- This is an open discussion item, at the moment, leaning towards not supporting plain text (h2c) upgrades. Websockets upgrades per stream should be possible but is not verified yet.
- stakeholders: Moses, Julien, Susheel, <nitesh, norman, chris, scott>
Community Meetups → setup wiki to capture content from meetups, create spot where folks can request topics for next meetup.
- stakeholders: norman
Early Adopters → We need folks to review PRs and kick this tires for Netty 5.0 features (Buffer, h2 api, compression, etc.)
- stakeholders: <everyone in the community 🎉❤️>
- Community: Bimontly meetings, share agenda, keep notes for folks that aren’t able to attend
- Community: Netty 5 must be able to co-exist with Netty 4 in the same application (different package names, maven coordinates, different JNI library names and method signatures)
- Community: (Moses, Eric, Violeta Georgieva) interested in reducing overhead of child channel initialization
- Eric: h2 PR was difficult to follow in terms of control frame relationship to child channel. Wasn’t clear what are intended improvements vs general changes.
- Moses: How do h2c upgrades work?
- Julien: Websockets for h2. How would this be supported?
- Susheel: Websockets requires h2c upgrade? Would we be able to use WebSocket handlers todo upgrades?
- Eric: Can we make the H2 frame types “in place” (buffer changes will be pervasive throughout Netty anyways)
- Carl: How does writability work?
- Scott: If we are using flow control for writability then a connection window update would have to connect to child channels
- Eric: It is possible to not have tight coupling between flow control and writability. Trade-offs include additional memory, but helps simplify the implementation/connectivity and avoids allocation thrashing and fairness issues.
- Eric: Why is the encoder and flow control on the child channel?
- Eric: More opaque is bcz you only see bytes (limited to not see other frames). Sharing hpack encoder across channels seems risky because events may get re-ordered.
- Community: No-one expressed interest in implementing custom flow control algorithm, no objections to keeping this package private to start
- Eric: there are components in the prototype that we gave up on previously, how do we think we can get the perf benefits back?
- Eric: We should consider API migration shims to help migrations. For example need a shim from ByteBuf to Buffer, should consider if we can do the same with h2, etc.