Everyone knows promises can help flatten the JS pyramid of death. But promises aren’t the only solution available. I’ll discuss some more advanced techniques surrounding the flow of information through your application through the use of libraries such as AsyncJS and RxJS. I’ll also talk about how embracing streams can not only alleviate control flow issues, but also improve performance. Finally, we’ll look into how tools such as ZeroMQ and Redis can help to foster asynchronous and event-driven APIs.