Visit our site to listen to past episodes, support the show, join our Discourse community, and sign up for our mailing list. Summary If you are trying to build a web application in Python that can scale to a high number of concurrent users, or you want to leverage the power of websockets, then Tornado just may be the library you need. In this episode we interview Ben Darnell about his work as the maintainer of the Tornado project and how it can be used in a number of ways to power your next high traffic site. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. Subscribe on iTunes, Stitcher, TuneIn or RSS Follow us on Twitter or Google+ Give us feedback! Leave a review on iTunes, Tweet to us, send us an email or leave us a message on Google+ We are also running a listener survey to get feedback about the show. You can find it at bit.do/podcastinit-survey. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for your next project I would also like to thank Hired, a job marketplace for developers and designers, for sponsoring this episode of Podcast.__init__. Use the link hired.com/podcastinit to double your signing bonus to $4,000. Your hosts as usual are Tobias Macey and Chris Patti We recently launched a new Discourse forum for the show which you can find at discourse.pythonpodcast.com. Join us to discuss the show, the episodes, and ideas for future interviews. Today we are interviewing Ben Darnell about his work on Tornado Interview with Ben Darnell Introductions How did you get introduced to Python? – Chris What is Tornado and what sets it apart from other HTTP servers? – Chris How did you get involved with Tornado? – Ben What was the inspiration for the name? – Tobias Tornado was created before the recent focus on asynchronous applications. What prompted that design choice and when might someone care about using async in their development? – Tobias What is involved in creating an event loop and what are some of the specific design decisions that you made when implementing one for Tornado? – Tobias How does Tornado’s event loop compare to other packages such as Twisted or the asyncio module in the standard library? – Tobias The web module appears to provide a minimal framework for developing web apps. How scalable are those capabilities and is there a recommended architecture for people using Tornado to develop web applications? – Tobias What are some use cases in which a developer might choose Tornado over other similar options? – Chris Could you please give our listeners an overview of Tornado’s concurrency options including coroutines? – Chris I see that Tornado supports interoperability with the WSGI protocol and one of the use cases mentioned is for running a Django application alongside a Tornado app. Is that a common way for providing websocket capabilities alongside an existing web app? – Tobias I noticed that Tornado provides non-blocking versions of bare sockets and TCP connections. Are there any add-on packages available to simplify the use of various network protocols along the lines of what Twisted includes? – Tobias Please tell us about the transition of Tornado to Python 3. What obstacles did you face and how did you overcome them? – Chris Based on your issue tracker it looks like http2 support is definitely on the roadmap. Could you please detail your future plans in this area? – Chris What are some of the common “gotcha’s” for people who are just starting to use Tornado? – Tobias Picks Tobias Adventures of Riley Dayworld Trilogy by Philip José Farmer Chris Sense8 Habits of a Happy Brain Ethereum Ben The Memory Palace Newsblur Keep In Touch Mailing List Links Motor The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA