The quiet problem with unnecessary async

Not every JavaScript function needs to be async. Unnecessary async boundaries can spread Promise-based complexity through an entire application.