That’s interesting, thanks! I imagine that on the server side, the upfront overhead is much less important; conversely, we’re less precious about the serialisation element, as mostly — although not exclusively — the data we do serialise is for our own in-app consumption to be read back by the same parser.
Two parsers split down the lines of input/output makes sense to a degree; I mean, we’ve seen that they’re mostly interchangeable in terms of architecture, and so why not play to their strengths if necessary. I’m interested though in whether the parser-specific baggage causes you any headaches, e.g. having to annotate things with not just one set of annotations but two.
I really liked Jackson for its configurability, including of its serialisation, but fortunately for us it’s currently only a few cases where we need very specific behaviour.