Parse Json and validate schemas are CPU bound tasks. Parse and validate long bodies can impact the reactivity of the event loop. Use a ThreadPoolExecutor is a simple and eficient solution. However, isn't trivial use your packed solution aside a ThreadPoolExecutor, because it neeeds function independent from the event loop. Currently, I dropped the use_args decorator and I am using my own implemented decorator. But I would like using it again. Why not allow the user provide a executor?