From its inception, Boost.Asio has been designed with a toolkit, rather than framework, approach in mind. The library focuses on providing a set of fundamental, portable building blocks. There is usually more than one right way to approach a task, and the library does not dictate a particular design. In this presentation, we will consider how an asynchronous mindset can be applied to design problems. We’ll look at alternative designs, common traps and pitfalls, and how to attack complexity with composed operations. The talk will also cover optimisation and the tools Boost.Asio provides for managing performance and scalability. This talk assumes that attendees have some basic level of familiarity with Boost.Asio.