Spark is pretty complete. I'm not sure what I'd add to it or change about it that wouldn't be making it bloated.
Seems Javelin is largely comparable, but with a bit more cruft (offering async calls sticks as an unusual decision given the way the language is heading).
Definitely reconsider it, while Java is still often used in an “enterprise” style, modern Java brought in plenty of advancements and it is a quite expressive, while still readable language.
Which is kind of strange, I never understood people being so hyped about Go, while straight up refusing to touch Java for “verbosity”, when in fact the latter is much more terse. We sure are not too rational when it comes to tooling :D