Date: Sat, 18 Mar 2017 17:15:00 -0400
<h3>Summary</h3> <p>As our system architectures and the Internet of Things continue to push us towards distributed logic we need a way to route the traffic between those various components. Crossbar.io is the original implementation of the Web Application Messaging Protocol (WAMP) which combines Remote Procedure Calls (RPC) with Publish/Subscribe (PubSub) communication patterns into a single communication layer. In this episode Tobias Oberstein describes the use cases and design patterns that become possible when you have event-based RPC in a high-throughput and low-latency system.</p> <h3>Preface</h3> <ul> <li>Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.</li> <li>I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable.</li> <li>When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at <a href="http://linode.com/podcastinit?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">linode.com/podcastinit</a> and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app.</li> <li>Visit our <a href="https://www.pythonpodcast.com?utm_source=rss&utm_medium=rss">site</a> to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch.</li> <li>To help other people find the show you can leave a review on <a href="https://itunes.apple.com/us/podcast/podcast.-init/id981834425?mt=2&uo=6&at=&ct=&utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">iTunes</a>, or <a href="https://play.google.com/music/m/I7ogju4xv6adasgqz6545jndgsy?t=Podcastinit_-_Python_and_the_people_who_make_it_great&utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Google Play Music</a>, and tell your friends and co-workers</li> <li>Your host as usual is Tobias Macey and today I’m interviewing Tobias Oberstein and Alexander Gödde about Crossbar.io, a high throughput asynchronous router for the WAMP protocol</li> </ul> <h3>Interview</h3> <ul> <li>Introductions</li> <li>How did you get introduced to Python?</li> <li>What is Crossbar and what is the problem that you were trying to solve when you created it?</li> <li>What is the status of the IETF WAMP protocol proposal?</li> <li>Why have an open protocol – and how do you see the ecosystem?</li> <li>Python isn’t typically considered to be a high-performance language so what led you to use it for building Crossbar?</li> <li>How is Crossbar architected for proxying requests from a highly distributed set of clients with low latency and high throughput?</li> <li>How do you handle authorization between the various clients of the router so that potentially sensitive messages don’t get published to the wrong component?</li> <li>Does Crossbar encapsulate any business logic or is that all pushed to the edges of the system?</li> <li>What are some of the typical kinds of applications that Crossbar is designed for?</li> <li>What are some common design paradigms that would be better suited for a WAMP implementation?</li> <li>What are some of the most interesting or surprising uses of Crossbar that you have seen?</li> <li>What do you have planned for the future of Crossbar?</li> </ul> <h3>Keep In Touch</h3> <ul> <li>Mailing Lists <ul> <li><a href="https://groups.google.com/forum/#!forum/autobahnws?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">https://groups.google.com/forum/#!forum/autobahnws?utm_source=rss&utm_medium=rss</a></li> <li><a href="https://groups.google.com/forum/#!forum/wampws?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">https://groups.google.com/forum/#!forum/wampws?utm_source=rss&utm_medium=rss</a></li> <li><a href="https://groups.google.com/forum/#!forum/crossbario?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">https://groups.google.com/forum/#!forum/crossbario?utm_source=rss&utm_medium=rss</a></li> </ul> </li> <li>#autobahn on IRC</li> </ul> <h3>Picks</h3> <ul> <li>Tobias <ul> <li><a href="http://amzn.to/2lKtRQI?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Logan</a></li> </ul> </li> <li>Alex <ul> <li><a href="https://www.pivotaltracker.com/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Pivotal Tracker</a></li> </ul> </li> <li>Tobias <ul> <li><a href="https://pypy.org/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">PyPy</a></li> <li><a href="https://github.com/warner?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Brian Warner</a></li> <li><a href="http://click.pocoo.org/5/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Click</a></li> <li><a href="http://python-prompt-toolkit.readthedocs.io/en/stable/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">prompt-toolkit</a></li> </ul> </li> </ul> <h3>Links</h3> <ul> <li><a href="http://crossbar.io/autobahn/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Autobahn</a></li> <li><a href="http://wamp-proto.org/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">WAMP</a></li> <li><a href="https://pypy.org?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">PyPy</a></li> <li><a href="http://microservices.io/patterns/apigateway.html?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">API Gateway</a></li> </ul> <p>The intro and outro music is from Requiem for a Fish <a href="http://freemusicarchive.org/music/The_Freak_Fandango_Orchestra/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">The Freak Fandango Orchestra</a> / <a href="http://creativecommons.org/licenses/by-sa/3.0/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">CC BY-SA</a><img alt="" height="0" src="https://analytics.boundlessnotions.com/piwik.php?idsite=1&rec=1&url=https%3A%2F%2Fwww.pythonpodcast.com%2Fepisode-101-crossbar-io-with-tobias-oberstein-and-alexander-goedde%2F&action_name=Crossbar.io+with+Tobias+Oberstein+and+Alexander+G%C3%B6dde+-+Episode+101&urlref=https%3A%2F%2Fwww.pythonpodcast.com%2Ffeed%2F&utm_source=rss&utm_medium=rss" style="border: 0; width: 0; height: 0;" width="0" /></p>