Synchronous programming is much, much easier to understand, debug, profile etc..
Benefits (performance/throughput) of async handling are mostly void in Java 21, with introduction of Virtual threads. Yay!
Only bummer for now is that Undertow doesn't still support them.. :/
But undertow is performant in the current shape too, so for most use cases it will be enough.
Too much focus on purely functional programming and (mostly unnecessary) math concepts.
Easy to get lost in that and overcomplicate your code.
Too much annotations, autoconfigurations, dependency injection and complexity.
I was looking into these, but then sharaf would have to depend on Servlets API,
use @Inject
and gazzilion of god-knows-what-they-do annotations just to configure OAuth2 for example...