Messaging on the Cloud

Google Cloud Platform Podcast

Episode | Podcast

Date: Wed, 09 Dec 2015 14:33:31 +0000

<p>In the seventh episode of this podcast, your hosts <a href="http://twitter.com/francesc">Francesc</a> and <a href="http://twitter.com/neurotic">Mark</a> discuss the different ways messaging can be done on Google Cloud Platform, covering Pub/Sub and Task Queues and when to choose what.</p> <p>Links:</p> <ul> <li>Google Cloud Vision API <a href="http://googlecloudplatform.blogspot.com/2015/12/Google-Cloud-Vision-API-changes-the-way-applications-understand-images.html"> blog post</a></li> <li>Photo Scavenger Hunt <a href="https://play.google.com/store/apps/details?id=com.bradabrams.photoscavengerhunt"> app</a></li> <li>Google Task Queues <a href="https://cloud.google.com/appengine/docs/python/taskqueue/">documentation</a></li> <li>Google Cloud Pub/Sub <a href="https://cloud.google.com/pubsub/docs">documentation</a></li> <li>Exporting logs <a href="https://cloud.google.com/logging/docs/export/configure_export">documentation</a></li> </ul> <h5 id="feature-comparison">Feature comparison</h5> <table border="1" cellpadding="10" cellspacing="0"> <tbody> <tr> <td><strong>Feature</strong></td> <td><strong>Task Queues</strong></td> <td><strong>Pub/Sub</strong></td> </tr> <tr> <td>Pull via API</td> <td>Yes</td> <td>Yes</td> </tr> <tr> <td>Push via Webhooks</td> <td>Yes</td> <td>Yes</td> </tr> <tr> <td>Max size of message</td> <td>100K</td> <td>10MB</td> </tr> <tr> <td>At least once delivery guarantee</td> <td>Yes</td> <td>Yes</td> </tr> <tr> <td>Batch Insert</td> <td>Only in App Engine</td> <td>Yes</td> </tr> <tr> <td>Multiple receivers</td> <td>No</td> <td>Yes</td> </tr> <tr> <td>Datastore Transactions</td> <td>Yes</td> <td>No</td> </tr> <tr> <td>Maximum Messages/s</td> <td>1B (with <a href="https://cloud.google.com/appengine/docs/quotas?hl=en#Task_Queue">billing</a><span>) 250 msg/q/s</span></td> <td>Unlimited (after request)</td> </tr> <tr> <td>Throttling</td> <td>Yes</td> <td>No (if needed → pull)</td> </tr> <tr> <td>Performance</td> <td>median 5ms (99%ile 300ms)</td> <td><a href="http://googlecloudplatform.blogspot.com/2015/03/using-Google-Cloud-pubsub-to-Connect-applications-and-data-streams.html"> Sub-second even when tested at over 1M msg/s</a></td> </tr> <tr> <td>Cloud Monitoring</td> <td>No</td> <td>Yes</td> </tr> </tbody> </table>