When comparing Mach vs Koa, the Slant community recommends Koa for most people. In the question“What are the best node.js web frameworks?” Koa is ranked 5th while Mach is ranked 11th. The most important reason people chose Koa is:
Using generators (a bleeding edge feature, even for Node.js) would clean up your code from the mess caused by all those callbacks; making your code more manageable.
Ranked in these QuestionsQuestion Ranking
Pros
Pro Streaming
Mach has some pretty cool streaming functionalities built directly into it, if your web app provides any audio/video/data streaming features, you can consider using Mach to build it.
Pro Composability
Since Mach already is asynchronous (stateless) which means your logic is implemented by using promises (then objects
); hence your functions are pretty independent and composable.
Pro Simplicity
No complex layers between plain HTTP requests and the corresponding JS functions invoked. Which in turn means each GET/POST/PUT or any other HTTP request is directly mapped to a Javascript function. Hence leading to a huge increase in performance for your app
Pro Robust
One of the distinguishing features of Mach is it's robustness, errors won't be terminating your complete app, instead they'll bubble up so you can handle them gracefully.
Pro Asynchronous
Like most of the Node.js's core, Mach is an asynchronous web framework too. Each response (of a request) can simply be hooked up to a then
method so that its result or the reason for failure can be retrieved after the action is complete. If you're wondering what async operations are, here's a pretty good explanation for you
Pro Generator support from ground up
Using generators (a bleeding edge feature, even for Node.js) would clean up your code from the mess caused by all those callbacks; making your code more manageable.
Pro Extremely lightweight
Koa is very lightweight with just 550 lines of code.
Pro async/await keywords are supported and has transcended beyond generator functions
Generators functions are of course a huge plus, but at the time Koa team has transcended generations functions and shifted towards async/await style programming. It has made the Koa best framework available in the market.
Pro Development team has a proven track record
Koa is developed by the team behind a widely used node.js framework (express.js).

Pro Built for ES6
Cons
Con Community is relatively small
Con Not compatible with express style middleware
Koa uses generators which are not compatible with any other type of Node.js framework middleware.
Con Has no routes separated by HTTP method or URL pattern
Con Wrong Middle ware, security issue
