Your software needs to leverage multiple cores, handle thousands of users and terabytes of data, and continue working in the face of both hardware and software failure. Concurrency and parallelism are the keys. Paul Butcher shows how emerging technologies such as actors and functional programming address issues with traditional threads and locks development.