Play is a web application framework that is simple, flexible and avoids unsafe assumptions. It takes HTTP requests and returns responses without tying requests to threads or sessions to memory. It provides options like a build system, templates, JSON support and more without mandating specific technologies. Well-designed Play apps use loosely coupled services accessed through HTTP to allow flexible front ends that separate concerns through commands and queries.