If I run the ring jetty handler with {:async? true}
must all handlers then have arity 3? I thought I could mix and match arity 1 and 3
Yes, they must all support arity 3. It's not possible to go from blocking code to asynchronous code, so if you have an asynchronous adapter, all of your middleware and handlers need to be asynchronous as well.