With #1089 (and related) completed, Jackson 2.16 both allows for configuring alternate RecyclerPools to use for buffer recycling and provides a set of alternatives, notably ones that do not use ThreadLocal for recycling.
To reduce likelihood of breakage, the default implementation for 2.16 remains ThreadLocal-based pool. This hopefully allows as to gather feedback, experiences by early adopters, on how alternative pools work (for example, Quarkus project is likely to experiment with alternatives). This, in turn, should let us decide on which alternative to use, along with global-vs-per-factory pools.
As the baseline, my icurrent thinking is that per-factory, unbounded/lock-free implementation might work well as the default.