<script type="application/json" id="HeaderNotice-apollo-state-992f9e1e-c79c-43fb-96a9-089d825fa346">{}</script> <!-- glamorIds: 7 --> <script type="application/json" id="HeaderNotice-glamor-992f9e1e-c79c-43fb-96a9-089d825fa346">["1htug8r","1yodi52","iepywa","x5hg3h","u0iaox","9ilv8v","gwph6j"]</script> <style>@-webkit-keyframes animation_1htug8r{to{transform:rotate(360deg);-webkit-transform:rotate(360deg);}}@-moz-keyframes animation_1htug8r{to{transform:rotate(360deg);-webkit-transform:rotate(360deg);}}@-o-keyframes animation_1htug8r{to{transform:rotate(360deg);-webkit-transform:rotate(360deg);}}@keyframes animation_1htug8r{to{transform:rotate(360deg);-webkit-transform:rotate(360deg);}}@-webkit-keyframes animation_1yodi52{0%{background-position:0 0;}100%{background-position:100em 0;}}@-moz-keyframes animation_1yodi52{0%{background-position:0 0;}100%{background-position:100em 0;}}@-o-keyframes animation_1yodi52{0%{background-position:0 0;}100%{background-position:100em 0;}}@keyframes animation_1yodi52{0%{background-position:0 0;}100%{background-position:100em 0;}}@-webkit-keyframes animation_iepywa{0%, 100%{opacity:0;}50%{opacity:1;}}@-moz-keyframes animation_iepywa{0%, 100%{opacity:0;}50%{opacity:1;}}@-o-keyframes animation_iepywa{0%, 100%{opacity:0;}50%{opacity:1;}}@keyframes animation_iepywa{0%, 100%{opacity:0;}50%{opacity:1;}}@-webkit-keyframes animation_x5hg3h{100%{stroke-dashoffset:0;}}@-moz-keyframes animation_x5hg3h{100%{stroke-dashoffset:0;}}@-o-keyframes animation_x5hg3h{100%{stroke-dashoffset:0;}}@keyframes animation_x5hg3h{100%{stroke-dashoffset:0;}}@-webkit-keyframes animation_u0iaox{0%, 100%{transform:none;-webkit-transform:none;}50%{transform:scale3d(1.1, 1.1, 1);-webkit-transform:scale3d(1.1, 1.1, 1);}}@-moz-keyframes animation_u0iaox{0%, 100%{transform:none;-webkit-transform:none;}50%{transform:scale3d(1.1, 1.1, 1);-webkit-transform:scale3d(1.1, 1.1, 1);}}@-o-keyframes animation_u0iaox{0%, 100%{transform:none;-webkit-transform:none;}50%{transform:scale3d(1.1, 1.1, 1);-webkit-transform:scale3d(1.1, 1.1, 1);}}@keyframes animation_u0iaox{0%, 100%{transform:none;-webkit-transform:none;}50%{transform:scale3d(1.1, 1.1, 1);-webkit-transform:scale3d(1.1, 1.1, 1);}}@-webkit-keyframes animation_9ilv8v{100%{box-shadow:inset 0px 0px 0px 30px #068dfe;}}@-moz-keyframes animation_9ilv8v{100%{box-shadow:inset 0px 0px 0px 30px #068dfe;}}@-o-keyframes animation_9ilv8v{100%{box-shadow:inset 0px 0px 0px 30px #068dfe;}}@keyframes animation_9ilv8v{100%{box-shadow:inset 0px 0px 0px 30px #068dfe;}}.css-gwph6j,[data-css-gwph6j]{border-radius:2px;background-size:200% 100%;width:auto;height:auto;animation:20s animation_1yodi52 0s linear infinite;background:-webkit-linear-gradient(to right, #f1f1f1 0%, #fbfbfb 50%, #f1f1f1 100%); background: -moz-linear-gradient(to right, #f1f1f1 0%, #fbfbfb 50%, #f1f1f1 100%); background: linear-gradient(to right, #f1f1f1 0%, #fbfbfb 50%, #f1f1f1 100%);-webkit-animation:20s animation_1yodi52 0s linear infinite;}</style> <div id="HeaderNotice-react-component-992f9e1e-c79c-43fb-96a9-089d825fa346" data-ssr="true" ><div style="z-index:1000" class="css-gwph6j"></div></div> <script> renderComponent('HeaderNotice','HeaderNotice-react-component-992f9e1e-c79c-43fb-96a9-089d825fa346','HeaderNotice-apollo-state-992f9e1e-c79c-43fb-96a9-089d825fa346','HeaderNotice-glamor-992f9e1e-c79c-43fb-96a9-089d825fa346', 'apollo','{"mobile":false}'); </script> <script type="application/json" id="Stackup-apollo-state-f64f6f22-1d31-4ffb-b32b-766de043cde6">{"Tool:101231773618167288":{"id":"101231773618167288","legacyThirdPartyId":"395","slug":"amazon-sqs","contactEnabled":true,"contactButtonText":"Check out Private StackShare for Teams","contactFlow":{"type":"json","json":{"links":[{"url":"https://stackshare.io/private","type":"website"}],"steps":["direct_link"]}},"name":"Amazon SQS","packageManager":null,"type":"Tool","imageUrl":"https://img.stackshare.io/service/395/amazon-sqs.png","thumbUrl":"https://img.stackshare.io/service/395/thumb_amazon-sqs.png","thumbRetinaUrl":"https://img.stackshare.io/service/395/thumb_retina_amazon-sqs.png","canonicalUrl":"/amazon-sqs","stacks":3049,"votes":167,"jobs":20,"followersCount":1866,"following":false,"latestVersionNumber":null,"license":null,"dependentPackagesCount":0,"membersCount":0,"vulnerabilities":{"type":"id","generated":true,"id":"$Tool:101231773618167288.vulnerabilities","typename":"VulnerabilityConnection"},"hackernewsOnlineMentionsCount":0,"redditOnlineMentionsCount":45,"stackOverflowOnlineMentionsCount":3839,"githubForksCount":null,"githubStarsCount":null,"githubUpdatedAt":null,"description":"Transmit any volume of data, at any level of throughput, without losing messages or requiring other services to be always available. With SQS, you can offload the administrative burden of operating and scaling a highly available messaging cluster, while paying a low price for only what you use.","pricingUrl":"http://aws.amazon.com/sqs/pricing/","popularity":6437.9,"path":"/amazon-sqs","pressUrl":null,"relatedStackupsCount":102,"layer":{"type":"id","generated":true,"id":"$Tool:101231773618167288.layer","typename":"Layer"},"category":{"type":"id","generated":true,"id":"$Tool:101231773618167288.category","typename":"Category"},"function":{"type":"id","generated":true,"id":"$Tool:101231773618167288.function","typename":"Function"},"cachedPros":{"type":"json","json":{"count":13,"edges":[{"node":{"id":"101978468927386887","text":"Easy to use, reliable","upvoted":false,"__typename":"Reason","upvotesCount":61},"__typename":"ReasonEdge"},{"node":{"id":"101978468982301706","text":"Low cost","upvoted":false,"__typename":"Reason","upvotesCount":39},"__typename":"ReasonEdge"},{"node":{"id":"101978468982193024","text":"Simple","upvoted":false,"__typename":"Reason","upvotesCount":27},"__typename":"ReasonEdge"},{"node":{"id":"101978469440342324","text":"Doesn't need to maintain it","upvoted":false,"__typename":"Reason","upvotesCount":13},"__typename":"ReasonEdge"},{"node":{"id":"101978469954231713","text":"It is Serverless","upvoted":false,"__typename":"Reason","upvotesCount":8},"__typename":"ReasonEdge"},{"node":{"id":"101978469145778516","text":"Has a max message size (currently 256K)","upvoted":false,"__typename":"Reason","upvotesCount":4},"__typename":"ReasonEdge"},{"node":{"id":"103730869723962184","text":"Easy to configure with Terraform","upvoted":false,"__typename":"Reason","upvotesCount":3},"__typename":"ReasonEdge"},{"node":{"id":"103293675122484362","text":"Triggers Lambda","upvoted":false,"__typename":"Reason","upvotesCount":3},"__typename":"ReasonEdge"},{"node":{"id":"101978469537043457","text":"Delayed delivery upto 15 mins only","upvoted":false,"__typename":"Reason","upvotesCount":3},"__typename":"ReasonEdge"},{"node":{"id":"101978469393741337","text":"Delayed delivery upto 12 hours","upvoted":false,"__typename":"Reason","upvotesCount":3},"__typename":"ReasonEdge"},{"node":{"id":"101978470030584781","text":"JMS compliant","upvoted":false,"__typename":"Reason","upvotesCount":1},"__typename":"ReasonEdge"},{"node":{"id":"104795644248230186","text":"Support for retry and dead letter queue","upvoted":false,"__typename":"Reason","upvotesCount":1},"__typename":"ReasonEdge"},{"node":{"id":"102422081188930817","text":"D","upvoted":false,"__typename":"Reason","upvotesCount":1},"__typename":"ReasonEdge"}],"pageInfo":{"endCursor":"MTM","__typename":"PageInfo","hasNextPage":false},"__typename":"ReasonConnection"}},"cachedCons":{"type":"json","json":{"count":4,"edges":[{"node":{"id":"102701936521488975","text":"Has a max message size (currently 256K)","upvoted":false,"__typename":"Reason","upvotesCount":2},"__typename":"ReasonEdge"},{"node":{"id":"103889898125068934","text":"Proprietary","upvoted":false,"__typename":"Reason","upvotesCount":2},"__typename":"ReasonEdge"},{"node":{"id":"101978470218988789","text":"Difficult to configure","upvoted":false,"__typename":"Reason","upvotesCount":2},"__typename":"ReasonEdge"},{"node":{"id":"104771085088648667","text":"Has a maximum 15 minutes of delayed messages only","upvoted":false,"__typename":"Reason","upvotesCount":1},"__typename":"ReasonEdge"}],"pageInfo":{"endCursor":"NA","__typename":"PageInfo","hasNextPage":false},"__typename":"ReasonConnection"}},"privateStacks({\"first\":7})":{"type":"id","generated":true,"id":"$Tool:101231773618167288.privateStacks({\"first\":7})","typename":"StackConnection"},"teams({\"first\":7})":{"type":"id","generated":true,"id":"$Tool:101231773618167288.teams({\"first\":7})","typename":"TeamConnection"},"cachedCompanyStacksUsing":{"type":"json","json":{"count":860,"edges":[{"node":{"owner":{"name":"Pinterest","imageUrl":"https://img.stackshare.io/company/260/default_c077fc04bb219001b7a1ab10f90ebcdb00c143a9.png","thumbUrl":"https://img.stackshare.io/company/260/thumb_c077fc04bb219001b7a1ab10f90ebcdb00c143a9.png","__typename":"Company"},"__typename":"Stack","canonicalUrl":"/pinterest/pinterest"},"__typename":"StackEdge"},{"node":{"owner":{"name":"Amazon","imageUrl":"https://img.stackshare.io/company/21101/default_4b66e1e5f8ca593d78eeba5e4ab192db7a908d7f.jpg","thumbUrl":"https://img.stackshare.io/company/21101/thumb_4b66e1e5f8ca593d78eeba5e4ab192db7a908d7f.jpg","__typename":"Company"},"__typename":"Stack","canonicalUrl":"/amazon/amazon"},"__typename":"StackEdge"},{"node":{"owner":{"name":"CRED","imageUrl":"https://img.stackshare.io/company/157954/default_cc6f172c22daf1928d131d050bf4ec6c6ee6ab83.png","thumbUrl":"https://img.stackshare.io/company/157954/thumb_cc6f172c22daf1928d131d050bf4ec6c6ee6ab83.png","__typename":"Company"},"__typename":"Stack","canonicalUrl":"/cred/cred"},"__typename":"StackEdge"},{"node":{"owner":{"name":"Lyft","imageUrl":"https://img.stackshare.io/company/206/default_23126266e3447ffef9c4eb18b7fd30f0e9876513.jpg","thumbUrl":"https://img.stackshare.io/company/206/thumb_23126266e3447ffef9c4eb18b7fd30f0e9876513.jpg","__typename":"Company"},"__typename":"Stack","canonicalUrl":"/lyft/lyft"},"__typename":"StackEdge"},{"node":{"owner":{"name":"Getir","imageUrl":"https://img.stackshare.io/company/165728/default_fbf25d77364b39ff713232dcc93c11f8737b7b06.png","thumbUrl":"https://img.stackshare.io/company/165728/thumb_fbf25d77364b39ff713232dcc93c11f8737b7b06.png","__typename":"Company"},"__typename":"Stack","canonicalUrl":"/getir/tech-stack"},"__typename":"StackEdge"},{"node":{"owner":{"name":"KAVAK","imageUrl":"https://img.stackshare.io/company/162159/default_7e62005c9e5e4680f91c1b1e3cdb644c0ab08bdd.png","thumbUrl":"https://img.stackshare.io/company/162159/thumb_7e62005c9e5e4680f91c1b1e3cdb644c0ab08bdd.png","__typename":"Company"},"__typename":"Stack","canonicalUrl":"/kavak/kavak"},"__typename":"StackEdge"},{"node":{"owner":{"name":"Accenture","imageUrl":"https://img.stackshare.io/company/5329/default_10422cde5bb694e29df90756ea77e657e4268b9c.jpg","thumbUrl":"https://img.stackshare.io/company/5329/thumb_10422cde5bb694e29df90756ea77e657e4268b9c.jpg","__typename":"Company"},"__typename":"Stack","canonicalUrl":"/accenture/accenture"},"__typename":"StackEdge"}],"pageInfo":{"endCursor":"Nw","__typename":"PageInfo","hasNextPage":true},"__typename":"StackConnection"}},"cachedAllToolIntegrations":{"type":"json","json":{"count":20,"edges":[{"node":{"name":"Apache NiFi","path":"/apache-nifi","imageUrl":"https://img.stackshare.io/service/8447/qpL7Veso_400x400.jpg","thumbUrl":"https://img.stackshare.io/service/8447/thumb_qpL7Veso_400x400.jpg","__typename":"Tool"},"__typename":"ToolEdge"},{"node":{"name":"MongoDB Stitch","path":"/mongodb-stitch","imageUrl":"https://img.stackshare.io/service/7174/stitch-360x360.png","thumbUrl":"https://img.stackshare.io/service/7174/thumb_stitch-360x360.png","__typename":"Tool"},"__typename":"ToolEdge"},{"node":{"name":"KrakenD","path":"/krakend","imageUrl":"https://img.stackshare.io/service/10554/Hzb-QTj__400x400.jpg","thumbUrl":"https://img.stackshare.io/service/10554/thumb_Hzb-QTj__400x400.jpg","__typename":"Tool"},"__typename":"ToolEdge"},{"node":{"name":"LocalStack","path":"/localstack","imageUrl":"https://img.stackshare.io/service/6715/localstack.png","thumbUrl":"https://img.stackshare.io/service/6715/thumb_localstack.png","__typename":"Tool"},"__typename":"ToolEdge"},{"node":{"name":"SignalFx","path":"/signalfx","imageUrl":"https://img.stackshare.io/service/3018/KWwTTTyz_400x400.jpg","thumbUrl":"https://img.stackshare.io/service/3018/thumb_KWwTTTyz_400x400.jpg","__typename":"Tool"},"__typename":"ToolEdge"},{"node":{"name":"StreamSets","path":"/streamsets","imageUrl":"https://img.stackshare.io/service/7932/default_511b9c033942380f3b6a020aeac11de4b77d34ba.png","thumbUrl":"https://img.stackshare.io/service/7932/thumb_511b9c033942380f3b6a020aeac11de4b77d34ba.png","__typename":"Tool"},"__typename":"ToolEdge"},{"node":{"name":"Cloudcraft","path":"/cloudcraft","imageUrl":"https://img.stackshare.io/service/3912/default_eef9cec4f264d26981a23e6429d825434ad39a20.png","thumbUrl":"https://img.stackshare.io/service/3912/thumb_eef9cec4f264d26981a23e6429d825434ad39a20.png","__typename":"Tool"},"__typename":"ToolEdge"}],"pageInfo":{"endCursor":"Nw","__typename":"PageInfo","hasNextPage":true},"__typename":"ToolConnection"}},"officialArticles({\"first\":5})":{"type":"id","generated":true,"id":"$Tool:101231773618167288.officialArticles({\"first\":5})","typename":"ArticleConnection"},"__typename":"Tool","title":"Fully managed message queuing service","verified":false,"fans":2338,"followContext":null},"$Tool:101231773618167288.vulnerabilities":{"edges":[],"__typename":"VulnerabilityConnection"},"$Tool:101231773618167288.layer":{"name":"Application and Data","slug":"application_and_data","__typename":"Layer"},"$Tool:101231773618167288.category":{"name":"Data Stores","slug":"data-stores","__typename":"Category"},"$Tool:101231773618167288.function":{"name":"Message Queue","slug":"message-queue","__typename":"Function"},"$Tool:101231773618167288.privateStacks({\"first\":7})":{"edges":[],"__typename":"StackConnection"},"$Tool:101231773618167288.teams({\"first\":7})":{"edges":[],"__typename":"TeamConnection"},"$Tool:101231773618167288.officialArticles({\"first\":5}).edges.0.node":{"title":"Amazon Simple Queue Service: Batch Operations, Delay Queue, and Message Timers","importSource":null,"outboundUrl":"https://aws.amazon.com/blogs/aws/amazon-simple-queue-service-batch-operations-delay-queue-and-message-timers/","discussionScore":null,"publishedAt":"2011-10-21T03:43:30Z","commentCount":0,"__typename":"Article"},"$Tool:101231773618167288.officialArticles({\"first\":5}).edges.0":{"node":{"type":"id","generated":true,"id":"$Tool:101231773618167288.officialArticles({\"first\":5}).edges.0.node","typename":"Article"},"__typename":"ArticleEdge"},"$Tool:101231773618167288.officialArticles({\"first\":5}).edges.1.node":{"title":"Behind the Scenes of the AWS Jobs Page, or Scope Creep in Action","importSource":null,"outboundUrl":"https://aws.amazon.com/blogs/aws/behind-the-scenes-of-the-aws-jobs-page/","discussionScore":null,"publishedAt":"2011-12-16T17:43:07Z","commentCount":0,"__typename":"Article"},"$Tool:101231773618167288.officialArticles({\"first\":5}).edges.1":{"node":{"type":"id","generated":true,"id":"$Tool:101231773618167288.officialArticles({\"first\":5}).edges.1.node","typename":"Article"},"__typename":"ArticleEdge"},"$Tool:101231773618167288.officialArticles({\"first\":5}).edges.2.node":{"title":"Scaling with Amazon SQS","importSource":null,"outboundUrl":"https://aws.amazon.com/blogs/aws/scaling-with-amazon-sqs/","discussionScore":null,"publishedAt":"2012-07-18T18:58:24Z","commentCount":0,"__typename":"Article"},"$Tool:101231773618167288.officialArticles({\"first\":5}).edges.2":{"node":{"type":"id","generated":true,"id":"$Tool:101231773618167288.officialArticles({\"first\":5}).edges.2.node","typename":"Article"},"__typename":"ArticleEdge"},"$Tool:101231773618167288.officialArticles({\"first\":5}).edges.3.node":{"title":"Amazon SQS – Long Polling and Request Batching / Client-Side Buffering","importSource":null,"outboundUrl":"https://aws.amazon.com/blogs/aws/amazon-sqs-long-polling-batching/","discussionScore":null,"publishedAt":"2012-11-09T04:01:07Z","commentCount":0,"__typename":"Article"},"$Tool:101231773618167288.officialArticles({\"first\":5}).edges.3":{"node":{"type":"id","generated":true,"id":"$Tool:101231773618167288.officialArticles({\"first\":5}).edges.3.node","typename":"Article"},"__typename":"ArticleEdge"},"$Tool:101231773618167288.officialArticles({\"first\":5}).edges.4.node":{"title":"New Asia Pacific (Sydney) Region in Australia – EC2, DynamoDB, S3, and Much More","importSource":null,"outboundUrl":"https://aws.amazon.com/blogs/aws/asia-pacific-sydney-region-open/","discussionScore":null,"publishedAt":"2012-11-12T13:11:17Z","commentCount":0,"__typename":"Article"},"$Tool:101231773618167288.officialArticles({\"first\":5}).edges.4":{"node":{"type":"id","generated":true,"id":"$Tool:101231773618167288.officialArticles({\"first\":5}).edges.4.node","typename":"Article"},"__typename":"ArticleEdge"},"$Tool:101231773618167288.officialArticles({\"first\":5})":{"edges":[{"type":"id","generated":true,"id":"$Tool:101231773618167288.officialArticles({\"first\":5}).edges.0","typename":"ArticleEdge"},{"type":"id","generated":true,"id":"$Tool:101231773618167288.officialArticles({\"first\":5}).edges.1","typename":"ArticleEdge"},{"type":"id","generated":true,"id":"$Tool:101231773618167288.officialArticles({\"first\":5}).edges.2","typename":"ArticleEdge"},{"type":"id","generated":true,"id":"$Tool:101231773618167288.officialArticles({\"first\":5}).edges.3","typename":"ArticleEdge"},{"type":"id","generated":true,"id":"$Tool:101231773618167288.officialArticles({\"first\":5}).edges.4","typename":"ArticleEdge"}],"__typename":"ArticleConnection"},"ROOT_QUERY":{"tool({\"id\":\"amazon-sqs\"})":{"type":"id","generated":false,"id":"Tool:101231773618167288","typename":"Tool"},"tool({\"id\":\"celery\"})":{"type":"id","generated":false,"id":"Tool:101231773871944512","typename":"Tool"},"tool({\"id\":\"rabbitmq\"})":{"type":"id","generated":false,"id":"Tool:101231773864300849","typename":"Tool"},"stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"})":{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"})","typename":"Stackup"}},"Tool:101231773871944512":{"id":"101231773871944512","legacyThirdPartyId":"1075","slug":"celery","contactEnabled":false,"contactButtonText":null,"contactFlow":{"type":"json","json":{}},"name":"Celery","packageManager":null,"type":"Tool","imageUrl":"https://img.stackshare.io/service/1075/celery.png","thumbUrl":"https://img.stackshare.io/service/1075/thumb_celery.png","thumbRetinaUrl":"https://img.stackshare.io/service/1075/thumb_retina_celery.png","canonicalUrl":"/celery","stacks":1519,"votes":279,"jobs":221,"followersCount":1491,"following":false,"latestVersionNumber":"5.3.0","license":null,"dependentPackagesCount":0,"membersCount":0,"vulnerabilities":{"type":"id","generated":true,"id":"$Tool:101231773871944512.vulnerabilities","typename":"VulnerabilityConnection"},"hackernewsOnlineMentionsCount":581,"redditOnlineMentionsCount":534,"stackOverflowOnlineMentionsCount":8592,"githubForksCount":4394,"githubStarsCount":20612,"githubUpdatedAt":"2022-12-06T14:35:59Z","description":"Celery is an asynchronous task queue/job queue based on distributed message passing.\tIt is focused on real-time operation, but supports scheduling as well.","pricingUrl":"","popularity":3887.1,"path":"/celery","pressUrl":"https://github.com/celery/celery","relatedStackupsCount":109,"layer":{"type":"id","generated":true,"id":"$Tool:101231773871944512.layer","typename":"Layer"},"category":{"type":"id","generated":true,"id":"$Tool:101231773871944512.category","typename":"Category"},"function":{"type":"id","generated":true,"id":"$Tool:101231773871944512.function","typename":"Function"},"cachedPros":{"type":"json","json":{"count":11,"edges":[{"node":{"id":"101978468495098828","text":"Task queue","upvoted":false,"__typename":"Reason","upvotesCount":98},"__typename":"ReasonEdge"},{"node":{"id":"101978468495201451","text":"Python integration","upvoted":false,"__typename":"Reason","upvotesCount":63},"__typename":"ReasonEdge"},{"node":{"id":"101978468971840503","text":"Django integration","upvoted":false,"__typename":"Reason","upvotesCount":40},"__typename":"ReasonEdge"},{"node":{"id":"101978469064798487","text":"Scheduled Task","upvoted":false,"__typename":"Reason","upvotesCount":30},"__typename":"ReasonEdge"},{"node":{"id":"101978468548646332","text":"Publish/subsribe","upvoted":false,"__typename":"Reason","upvotesCount":19},"__typename":"ReasonEdge"},{"node":{"id":"101978468976029282","text":"Various backend broker","upvoted":false,"__typename":"Reason","upvotesCount":8},"__typename":"ReasonEdge"},{"node":{"id":"101978469657105234","text":"Easy to use","upvoted":false,"__typename":"Reason","upvotesCount":6},"__typename":"ReasonEdge"},{"node":{"id":"101978469058022304","text":"Great community","upvoted":false,"__typename":"Reason","upvotesCount":5},"__typename":"ReasonEdge"},{"node":{"id":"101978469287266691","text":"Workflow","upvoted":false,"__typename":"Reason","upvotesCount":5},"__typename":"ReasonEdge"},{"node":{"id":"101978469651382313","text":"Free","upvoted":false,"__typename":"Reason","upvotesCount":4},"__typename":"ReasonEdge"},{"node":{"id":"101978469838990170","text":"Dynamic","upvoted":false,"__typename":"Reason","upvotesCount":1},"__typename":"ReasonEdge"}],"pageInfo":{"endCursor":"MTE","__typename":"PageInfo","hasNextPage":false},"__typename":"ReasonConnection"}},"cachedCons":{"type":"json","json":{"count":2,"edges":[{"node":{"id":"102303852603174320","text":"Sometimes loses tasks","upvoted":false,"__typename":"Reason","upvotesCount":4},"__typename":"ReasonEdge"},{"node":{"id":"104120931347322392","text":"Depends on broker","upvoted":false,"__typename":"Reason","upvotesCount":1},"__typename":"ReasonEdge"}],"pageInfo":{"endCursor":"Mg","__typename":"PageInfo","hasNextPage":false},"__typename":"ReasonConnection"}},"privateStacks({\"first\":7})":{"type":"id","generated":true,"id":"$Tool:101231773871944512.privateStacks({\"first\":7})","typename":"StackConnection"},"teams({\"first\":7})":{"type":"id","generated":true,"id":"$Tool:101231773871944512.teams({\"first\":7})","typename":"TeamConnection"},"cachedCompanyStacksUsing":{"type":"json","json":{"count":462,"edges":[{"node":{"owner":{"name":"Udemy","imageUrl":"https://img.stackshare.io/company/365/default_139b6882a2de6f1ba5f36ab52b6180c3cd08f043.png","thumbUrl":"https://img.stackshare.io/company/365/thumb_139b6882a2de6f1ba5f36ab52b6180c3cd08f043.png","__typename":"Company"},"__typename":"Stack","canonicalUrl":"/udemy/udemy"},"__typename":"StackEdge"},{"node":{"owner":{"name":"Robinhood","imageUrl":"https://img.stackshare.io/company/10640/default_227fe5c26a1518cab3dc8b8b13e7575636c9db45.png","thumbUrl":"https://img.stackshare.io/company/10640/thumb_227fe5c26a1518cab3dc8b8b13e7575636c9db45.png","__typename":"Company"},"__typename":"Stack","canonicalUrl":"/robinhood/robinhood"},"__typename":"StackEdge"},{"node":{"owner":{"name":"Accenture","imageUrl":"https://img.stackshare.io/company/5329/default_10422cde5bb694e29df90756ea77e657e4268b9c.jpg","thumbUrl":"https://img.stackshare.io/company/5329/thumb_10422cde5bb694e29df90756ea77e657e4268b9c.jpg","__typename":"Company"},"__typename":"Stack","canonicalUrl":"/accenture/accenture"},"__typename":"StackEdge"},{"node":{"owner":{"name":"trivago","imageUrl":"https://img.stackshare.io/company/2084/default_79d34713b767344ee779dd08bde3899f9a7939b4.png","thumbUrl":"https://img.stackshare.io/company/2084/thumb_79d34713b767344ee779dd08bde3899f9a7939b4.png","__typename":"Company"},"__typename":"Stack","canonicalUrl":"/trivago/trivago"},"__typename":"StackEdge"},{"node":{"owner":{"name":"Sentry","imageUrl":"https://img.stackshare.io/company/302/default_06242664e4f521d5a00acfb13df35b22e7b69fda.jpg","thumbUrl":"https://img.stackshare.io/company/302/thumb_06242664e4f521d5a00acfb13df35b22e7b69fda.jpg","__typename":"Company"},"__typename":"Stack","canonicalUrl":"/sentry/sentry"},"__typename":"StackEdge"},{"node":{"owner":{"name":"Birdview","imageUrl":"https://img.stackshare.io/company/159157/default_40f7f35b98cf8711ff17c08bc96b174db7ba0d83.png","thumbUrl":"https://img.stackshare.io/company/159157/thumb_40f7f35b98cf8711ff17c08bc96b174db7ba0d83.png","__typename":"Company"},"__typename":"Stack","canonicalUrl":"/birdview/birdview"},"__typename":"StackEdge"},{"node":{"owner":{"name":"Kasa","imageUrl":"https://img.stackshare.io/company/30258/default_49e9de3ce5ac1cd22a3512e2a1df4270d8552fb6.png","thumbUrl":"https://img.stackshare.io/company/30258/thumb_49e9de3ce5ac1cd22a3512e2a1df4270d8552fb6.png","__typename":"Company"},"__typename":"Stack","canonicalUrl":"/kasa/kasa"},"__typename":"StackEdge"}],"pageInfo":{"endCursor":"Nw","__typename":"PageInfo","hasNextPage":true},"__typename":"StackConnection"}},"cachedAllToolIntegrations":{"type":"json","json":{"count":5,"edges":[{"node":{"name":"Sentry","path":"/sentry","imageUrl":"https://img.stackshare.io/service/191/lzoDXqf-.png","thumbUrl":"https://img.stackshare.io/service/191/thumb_lzoDXqf-.png","__typename":"Tool"},"__typename":"ToolEdge"},{"node":{"name":"Bugsnag","path":"/bugsnag","imageUrl":"https://img.stackshare.io/service/150/square-logo-small-midnight.png","thumbUrl":"https://img.stackshare.io/service/150/thumb_square-logo-small-midnight.png","__typename":"Tool"},"__typename":"ToolEdge"},{"node":{"name":"Netuitive","path":"/netuitive","imageUrl":"https://img.stackshare.io/service/3534/WGzxe39N.png","thumbUrl":"https://img.stackshare.io/service/3534/thumb_WGzxe39N.png","__typename":"Tool"},"__typename":"ToolEdge"},{"node":{"name":"HexoPress","path":"/hexopress","imageUrl":"https://img.stackshare.io/no-img-open-source.png","thumbUrl":"https://img.stackshare.io/service/6709/thumb_no-img-open-source.png","__typename":"Tool"},"__typename":"ToolEdge"},{"node":{"name":"ErrorShip","path":"/errorship","imageUrl":"https://img.stackshare.io/service/12132/unnamed.jpg","thumbUrl":"https://img.stackshare.io/service/12132/thumb_unnamed.jpg","__typename":"Tool"},"__typename":"ToolEdge"}],"pageInfo":{"endCursor":"NQ","__typename":"PageInfo","hasNextPage":false},"__typename":"ToolConnection"}},"officialArticles({\"first\":5})":{"type":"id","generated":true,"id":"$Tool:101231773871944512.officialArticles({\"first\":5})","typename":"ArticleConnection"},"__typename":"Tool","title":"Distributed task queue","verified":false,"fans":1843,"followContext":null},"$Tool:101231773871944512.vulnerabilities":{"edges":[],"__typename":"VulnerabilityConnection"},"$Tool:101231773871944512.layer":{"name":"Application and Data","slug":"application_and_data","__typename":"Layer"},"$Tool:101231773871944512.category":{"name":"Data Stores","slug":"data-stores","__typename":"Category"},"$Tool:101231773871944512.function":{"name":"Message Queue","slug":"message-queue","__typename":"Function"},"$Tool:101231773871944512.privateStacks({\"first\":7})":{"edges":[],"__typename":"StackConnection"},"$Tool:101231773871944512.teams({\"first\":7})":{"edges":[],"__typename":"TeamConnection"},"$Tool:101231773871944512.officialArticles({\"first\":5}).edges.0.node":{"title":"Hello RedBeat: A Celery Beat Scheduler","importSource":null,"outboundUrl":"https://blog.heroku.com/redbeat-celery-beat-scheduler","discussionScore":null,"publishedAt":"2017-05-02T15:32:28Z","commentCount":0,"__typename":"Article"},"$Tool:101231773871944512.officialArticles({\"first\":5}).edges.0":{"node":{"type":"id","generated":true,"id":"$Tool:101231773871944512.officialArticles({\"first\":5}).edges.0.node","typename":"Article"},"__typename":"ArticleEdge"},"$Tool:101231773871944512.officialArticles({\"first\":5})":{"edges":[{"type":"id","generated":true,"id":"$Tool:101231773871944512.officialArticles({\"first\":5}).edges.0","typename":"ArticleEdge"}],"__typename":"ArticleConnection"},"Tool:101231773864300849":{"id":"101231773864300849","legacyThirdPartyId":"1061","slug":"rabbitmq","contactEnabled":true,"contactButtonText":"Monitor RabbitMQ Metrics In Real-Time With Datadog","contactFlow":{"type":"json","json":{"links":[{"url":"https://www.datadoghq.com/dg/monitor/ts/rabbitmq-benefits-ts/?utm_source=advertisement&utm_medium=review-site&utm_campaign=dg-stackshare-coreplatform-ww-rabbitmq-tshirt","type":"website"}],"steps":["direct_link"]}},"name":"RabbitMQ","packageManager":null,"type":"Tool","imageUrl":"https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg","thumbUrl":"https://img.stackshare.io/service/1061/thumb_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg","thumbRetinaUrl":"https://img.stackshare.io/service/1061/thumb_retina_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg","canonicalUrl":"/rabbitmq","stacks":18416,"votes":522,"jobs":1399,"followersCount":16085,"following":false,"latestVersionNumber":"3.11.4","license":null,"dependentPackagesCount":0,"membersCount":0,"vulnerabilities":{"type":"id","generated":true,"id":"$Tool:101231773864300849.vulnerabilities","typename":"VulnerabilityConnection"},"hackernewsOnlineMentionsCount":402,"redditOnlineMentionsCount":394,"stackOverflowOnlineMentionsCount":13693,"githubForksCount":3764,"githubStarsCount":10202,"githubUpdatedAt":"2022-12-06T09:04:39Z","description":"RabbitMQ gives your applications a common platform to send and receive messages, and your messages a safe place to live until received.","pricingUrl":null,"popularity":44084.5,"path":"/rabbitmq","pressUrl":"https://github.com/rabbitmq/rabbitmq-server","relatedStackupsCount":148,"layer":{"type":"id","generated":true,"id":"$Tool:101231773864300849.layer","typename":"Layer"},"category":{"type":"id","generated":true,"id":"$Tool:101231773864300849.category","typename":"Category"},"function":{"type":"id","generated":true,"id":"$Tool:101231773864300849.function","typename":"Function"},"cachedPros":{"type":"json","json":{"count":26,"edges":[{"node":{"id":"101978468360040242","text":"It's fast and it works with good metrics/monitoring","upvoted":false,"__typename":"Reason","upvotesCount":232},"__typename":"ReasonEdge"},{"node":{"id":"101978468848957134","text":"Ease of configuration","upvoted":false,"__typename":"Reason","upvotesCount":79},"__typename":"ReasonEdge"},{"node":{"id":"101978468784863241","text":"I like the admin interface","upvoted":false,"__typename":"Reason","upvotesCount":58},"__typename":"ReasonEdge"},{"node":{"id":"101978469086062223","text":"Easy to set-up and start with","upvoted":false,"__typename":"Reason","upvotesCount":50},"__typename":"ReasonEdge"},{"node":{"id":"101978469440675701","text":"Durable","upvoted":false,"__typename":"Reason","upvotesCount":20},"__typename":"ReasonEdge"},{"node":{"id":"101978469353785680","text":"Standard protocols","upvoted":false,"__typename":"Reason","upvotesCount":18},"__typename":"ReasonEdge"},{"node":{"id":"101978469029912733","text":"Intuitive work through python","upvoted":false,"__typename":"Reason","upvotesCount":18},"__typename":"ReasonEdge"},{"node":{"id":"101978469369367071","text":"Written primarily in Erlang","upvoted":false,"__typename":"Reason","upvotesCount":10},"__typename":"ReasonEdge"},{"node":{"id":"101978469483717891","text":"Simply superb","upvoted":false,"__typename":"Reason","upvotesCount":8},"__typename":"ReasonEdge"},{"node":{"id":"101978469384062924","text":"Completeness of messaging patterns","upvoted":false,"__typename":"Reason","upvotesCount":6},"__typename":"ReasonEdge"},{"node":{"id":"101978470027996748","text":"Reliable","upvoted":false,"__typename":"Reason","upvotesCount":3},"__typename":"ReasonEdge"},{"node":{"id":"101978469483398732","text":"Scales to 1 million messages per second","upvoted":false,"__typename":"Reason","upvotesCount":3},"__typename":"ReasonEdge"},{"node":{"id":"101978469825713110","text":"Better than most traditional queue based message broker","upvoted":false,"__typename":"Reason","upvotesCount":2},"__typename":"ReasonEdge"},{"node":{"id":"101978469660950949","text":"Distributed","upvoted":false,"__typename":"Reason","upvotesCount":2},"__typename":"ReasonEdge"},{"node":{"id":"103852910986718895","text":"Supports AMQP","upvoted":false,"__typename":"Reason","upvotesCount":2},"__typename":"ReasonEdge"},{"node":{"id":"103356433281103920","text":"Inubit Integration","upvoted":false,"__typename":"Reason","upvotesCount":1},"__typename":"ReasonEdge"},{"node":{"id":"109268478407509392","text":"Open-source","upvoted":false,"__typename":"Reason","upvotesCount":1},"__typename":"ReasonEdge"},{"node":{"id":"107241075139305376","text":"Delayed messages","upvoted":false,"__typename":"Reason","upvotesCount":1},"__typename":"ReasonEdge"},{"node":{"id":"105978495698253062","text":"Supports MQTT","upvoted":false,"__typename":"Reason","upvotesCount":1},"__typename":"ReasonEdge"},{"node":{"id":"101978469483199214","text":"Runs on Open Telecom Platform","upvoted":false,"__typename":"Reason","upvotesCount":1},"__typename":"ReasonEdge"},{"node":{"id":"103719529247269292","text":"High performance","upvoted":false,"__typename":"Reason","upvotesCount":1},"__typename":"ReasonEdge"},{"node":{"id":"101978470199011425","text":"Reliability","upvoted":false,"__typename":"Reason","upvotesCount":1},"__typename":"ReasonEdge"},{"node":{"id":"101978469744513547","text":"Clusterable","upvoted":false,"__typename":"Reason","upvotesCount":1},"__typename":"ReasonEdge"},{"node":{"id":"101978469948565341","text":"Clear documentation with different scripting language","upvoted":false,"__typename":"Reason","upvotesCount":1},"__typename":"ReasonEdge"},{"node":{"id":"101978470004665914","text":"Great ui","upvoted":false,"__typename":"Reason","upvotesCount":1},"__typename":"ReasonEdge"},{"node":{"id":"101978470196131264","text":"Better routing system","upvoted":false,"__typename":"Reason","upvotesCount":1},"__typename":"ReasonEdge"}],"pageInfo":{"endCursor":"MjY","__typename":"PageInfo","hasNextPage":false},"__typename":"ReasonConnection"}},"cachedCons":{"type":"json","json":{"count":4,"edges":[{"node":{"id":"101978469859607893","text":"Too complicated cluster/HA config and management","upvoted":false,"__typename":"Reason","upvotesCount":9},"__typename":"ReasonEdge"},{"node":{"id":"101978469825855422","text":"Needs Erlang runtime. Need ops good with Erlang runtime","upvoted":false,"__typename":"Reason","upvotesCount":6},"__typename":"ReasonEdge"},{"node":{"id":"101978469766006663","text":"Configuration must be done first, not by your code","upvoted":false,"__typename":"Reason","upvotesCount":5},"__typename":"ReasonEdge"},{"node":{"id":"101978470219114303","text":"Slow","upvoted":false,"__typename":"Reason","upvotesCount":4},"__typename":"ReasonEdge"}],"pageInfo":{"endCursor":"NA","__typename":"PageInfo","hasNextPage":false},"__typename":"ReasonConnection"}},"privateStacks({\"first\":7})":{"type":"id","generated":true,"id":"$Tool:101231773864300849.privateStacks({\"first\":7})","typename":"StackConnection"},"teams({\"first\":7})":{"type":"id","generated":true,"id":"$Tool:101231773864300849.teams({\"first\":7})","typename":"TeamConnection"},"cachedCompanyStacksUsing":{"type":"json","json":{"count":1990,"edges":[{"node":{"owner":{"name":"Robinhood","imageUrl":"https://img.stackshare.io/company/10640/default_227fe5c26a1518cab3dc8b8b13e7575636c9db45.png","thumbUrl":"https://img.stackshare.io/company/10640/thumb_227fe5c26a1518cab3dc8b8b13e7575636c9db45.png","__typename":"Company"},"__typename":"Stack","canonicalUrl":"/robinhood/robinhood"},"__typename":"StackEdge"},{"node":{"owner":{"name":"reddit","imageUrl":"https://img.stackshare.io/company/283/default_f1ef48929737230c11e513e02f2272b6dc60eeed.jpg","thumbUrl":"https://img.stackshare.io/company/283/thumb_f1ef48929737230c11e513e02f2272b6dc60eeed.jpg","__typename":"Company"},"__typename":"Stack","canonicalUrl":"/reddit/reddit"},"__typename":"StackEdge"},{"node":{"owner":{"name":"Getir","imageUrl":"https://img.stackshare.io/company/165728/default_fbf25d77364b39ff713232dcc93c11f8737b7b06.png","thumbUrl":"https://img.stackshare.io/company/165728/thumb_fbf25d77364b39ff713232dcc93c11f8737b7b06.png","__typename":"Company"},"__typename":"Stack","canonicalUrl":"/getir/tech-stack"},"__typename":"StackEdge"},{"node":{"owner":{"name":"Accenture","imageUrl":"https://img.stackshare.io/company/5329/default_10422cde5bb694e29df90756ea77e657e4268b9c.jpg","thumbUrl":"https://img.stackshare.io/company/5329/thumb_10422cde5bb694e29df90756ea77e657e4268b9c.jpg","__typename":"Company"},"__typename":"Stack","canonicalUrl":"/accenture/accenture"},"__typename":"StackEdge"},{"node":{"owner":{"name":"Hepsiburada","imageUrl":"https://img.stackshare.io/company/29765/11753097.png","thumbUrl":"https://img.stackshare.io/company/29765/thumb_11753097.png","__typename":"Company"},"__typename":"Stack","canonicalUrl":"/hepsiburada/hepsiburada"},"__typename":"StackEdge"},{"node":{"owner":{"name":"CircleCI","imageUrl":"https://img.stackshare.io/company/59/default_1d293d3c2cd84b0d02876e299a11930bea63b22f.jpg","thumbUrl":"https://img.stackshare.io/company/59/thumb_1d293d3c2cd84b0d02876e299a11930bea63b22f.jpg","__typename":"Company"},"__typename":"Stack","canonicalUrl":"/circleci/circleci"},"__typename":"StackEdge"},{"node":{"owner":{"name":"Atolye15","imageUrl":"https://img.stackshare.io/company/34122/default_4765ff1751ec414598e2001cc7c3a01e978249b3.png","thumbUrl":"https://img.stackshare.io/company/34122/thumb_4765ff1751ec414598e2001cc7c3a01e978249b3.png","__typename":"Company"},"__typename":"Stack","canonicalUrl":"/atolye15/stack"},"__typename":"StackEdge"}],"pageInfo":{"endCursor":"Nw","__typename":"PageInfo","hasNextPage":true},"__typename":"StackConnection"}},"cachedAllToolIntegrations":{"type":"json","json":{"count":28,"edges":[{"node":{"name":"Datadog","path":"/datadog","imageUrl":"https://img.stackshare.io/service/669/default_34b3b9b42d07c33ac47ecdff75dd6f4f82aa70ee.jpg","thumbUrl":"https://img.stackshare.io/service/669/thumb_34b3b9b42d07c33ac47ecdff75dd6f4f82aa70ee.jpg","__typename":"Tool"},"__typename":"ToolEdge"},{"node":{"name":"Buddy","path":"/buddy","imageUrl":"https://img.stackshare.io/service/4263/eIQHH23Q_400x400.jpg","thumbUrl":"https://img.stackshare.io/service/4263/thumb_eIQHH23Q_400x400.jpg","__typename":"Tool"},"__typename":"ToolEdge"},{"node":{"name":"Netdata","path":"/netdata","imageUrl":"https://img.stackshare.io/service/5766/Logo.png","thumbUrl":"https://img.stackshare.io/service/5766/thumb_Logo.png","__typename":"Tool"},"__typename":"ToolEdge"},{"node":{"name":"TimescaleDB","path":"/timescaledb","imageUrl":"https://img.stackshare.io/service/6765/20190510_Timescale_Logo_Tiger.png","thumbUrl":"https://img.stackshare.io/service/6765/thumb_20190510_Timescale_Logo_Tiger.png","__typename":"Tool"},"__typename":"ToolEdge"},{"node":{"name":"StackStorm","path":"/stackstorm","imageUrl":"https://img.stackshare.io/service/2348/VaMFEyf3.jpeg","thumbUrl":"https://img.stackshare.io/service/2348/thumb_VaMFEyf3.jpeg","__typename":"Tool"},"__typename":"ToolEdge"},{"node":{"name":"Tutum","path":"/tutum","imageUrl":"https://img.stackshare.io/service/788/kyi-guwY.png","thumbUrl":"https://img.stackshare.io/service/788/thumb_kyi-guwY.png","__typename":"Tool"},"__typename":"ToolEdge"},{"node":{"name":"KrakenD","path":"/krakend","imageUrl":"https://img.stackshare.io/service/10554/Hzb-QTj__400x400.jpg","thumbUrl":"https://img.stackshare.io/service/10554/thumb_Hzb-QTj__400x400.jpg","__typename":"Tool"},"__typename":"ToolEdge"}],"pageInfo":{"endCursor":"Nw","__typename":"PageInfo","hasNextPage":true},"__typename":"ToolConnection"}},"officialArticles({\"first\":5})":{"type":"id","generated":true,"id":"$Tool:101231773864300849.officialArticles({\"first\":5})","typename":"ArticleConnection"},"__typename":"Tool","title":"Open source multiprotocol messaging broker","verified":false,"fans":19275,"followContext":null},"$Tool:101231773864300849.vulnerabilities":{"edges":[],"__typename":"VulnerabilityConnection"},"$Tool:101231773864300849.layer":{"name":"Application and Data","slug":"application_and_data","__typename":"Layer"},"$Tool:101231773864300849.category":{"name":"Data Stores","slug":"data-stores","__typename":"Category"},"$Tool:101231773864300849.function":{"name":"Message Queue","slug":"message-queue","__typename":"Function"},"$Tool:101231773864300849.privateStacks({\"first\":7})":{"edges":[],"__typename":"StackConnection"},"$Tool:101231773864300849.teams({\"first\":7})":{"edges":[],"__typename":"TeamConnection"},"$Tool:101231773864300849.officialArticles({\"first\":5})":{"edges":[],"__typename":"ArticleConnection"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"})":{"cachedAlternativeTools":{"type":"json","json":{"count":46,"edges":[{"node":{"id":"101231777401770188","name":"Amazon MQ","__typename":"Tool","description":"Amazon MQ is a managed message broker service for Apache ActiveMQ that makes it easy to set up and operate message brokers in the cloud."},"__typename":"ToolEdge"},{"node":{"id":"101231773865214260","name":"Kafka","__typename":"Tool","description":"Kafka is a distributed, partitioned, replicated commit log service. It provides the functionality of a messaging system, but with a unique design."},"__typename":"ToolEdge"},{"node":{"id":"101231773854768982","name":"Redis","__typename":"Tool","description":"Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache, and message broker. Redis provides data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes, and streams."},"__typename":"ToolEdge"},{"node":{"id":"101231773864793528","name":"ActiveMQ","__typename":"Tool","description":"Apache ActiveMQ is fast, supports many Cross Language Clients and Protocols, comes with easy to use Enterprise Integration Patterns and many advanced features while fully supporting JMS 1.1 and J2EE 1.4. Apache ActiveMQ is released under the Apache 2.0 License."},"__typename":"ToolEdge"},{"node":{"id":"101231773618592622","name":"Amazon SNS","__typename":"Tool","description":"Amazon Simple Notification Service makes it simple and cost-effective to push to mobile devices such as iPhone, iPad, Android, Kindle Fire, and internet connected smart devices, as well as pushing to other distributed services. Besides pushing cloud notifications directly to mobile devices, SNS can also deliver notifications by SMS text message or email, to Simple Queue Service (SQS) queues, or to any HTTP endpoint."},"__typename":"ToolEdge"}],"__typename":"ToolConnection"}},"contactEnabledTools":[{"type":"id","generated":false,"id":"Tool:101231773618167288","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773864300849","typename":"Tool"}],"jobs":{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).jobs","typename":"JobConnection"},"featuredPosts":{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).featuredPosts","typename":"FeaturedPostConnection"},"applesToOranges":false,"content1":"","content2":"","topContent":"","bottomContent":"","packageStackup":false,"screenshotImageUrl":null,"function":"Message Queue","path":"/stackups/amazon-sqs-vs-celery-vs-rabbitmq","title":"Amazon SQS vs Celery vs RabbitMQ","seoUpdatedAt":"2022-06-16T09:18:36Z","cachedStackDecisionsGetAdvice":{"type":"json","json":{"count":9,"edges":[{"node":{"id":"107355650747834760","user":{"id":"107019240098549175","title":null,"imageUrl":"https://img.stackshare.io/user/1042771/default_681f84a7404ae321dc63245332bdb19640e60db4.jpeg","thumbUrl":"https://img.stackshare.io/user/1042771/thumb_681f84a7404ae321dc63245332bdb19640e60db4.jpeg","username":"kaffarell","__typename":"User","companyName":null,"displayName":"kaffarell"},"stack":null,"topics":[],"answers":{"count":4,"edges":[{"node":{"id":"107388160949344756","link":{"url":"https://tarunbatra.com/tags/message-queue/","title":"Tag: message-queue","imageUrl":"https://tarunbatra.com/tags/message-queue/../.././meta/favicon-192x192.png","__typename":"Link"},"user":{"id":"103149280081107721","path":"/tarunbatra","title":"Senior Software Developer","imageUrl":"https://img.stackshare.io/user/318924/default_e8f12268978a5d40e46dde938e339c9dcf189329.jpeg","username":"tarunbatra","__typename":"User","companyName":"Okta","displayName":"Tarun Batra"},"draft":false,"topics":[],"company":null,"flagged":false,"private":false,"toTools":[],"upvoted":false,"publicId":"107388160949344756","services":[],"createdAt":"2021-12-04T10:21:35Z","fromTools":[],"viewCount":94864,"__typename":"StackDecision","bookmarked":false,"rawContent":"We have faced the same question some time ago. Before I begin, **DO NOT use Redis** as a message broker. It is fast and easy to set up in the beginning but it does not scale. It is not made to be reliable in scale and that is mentioned in the official docs. [This analysis of our problems with Redis](https://tarunbatra.com/blog/architecture/Polling-reliably-at-scale-using-DLQs/#Redis-Keyspace-Notifications) may help you.\n\nWe have used Kafka and RabbitMQ both in scale. We concluded that RabbitMQ is a really good general purpose message broker (for our case) and Kafka is really fast but limited in features. That’s the trade off that we understood from using it. In-fact I [blogged about the trade offs between Kafka and RabbitMQ](https://tarunbatra.com/blog/comparison/How-to-choose-between-Kafka-and-RabbitMQ/) to document it. I hope it helps you in choosing the best pub-sub layer for your use case.\n\n","htmlContent":"<p>We have faced the same question some time ago. Before I begin, <strong>DO NOT use Redis</strong> as a message broker. It is fast and easy to set up in the beginning but it does not scale. It is not made to be reliable in scale and that is mentioned in the official docs. <a href=\"https://tarunbatra.com/blog/architecture/Polling-reliably-at-scale-using-DLQs/#Redis-Keyspace-Notifications\" rel=\"nofollow noopener\" target=\"_blank\">This analysis of our problems with Redis</a> may help you.</p>\n\n<p>We have used Kafka and RabbitMQ both in scale. We concluded that RabbitMQ is a really good general purpose message broker (for our case) and Kafka is really fast but limited in features. That’s the trade off that we understood from using it. In-fact I <a href=\"https://tarunbatra.com/blog/comparison/How-to-choose-between-Kafka-and-RabbitMQ/\" rel=\"nofollow noopener\" target=\"_blank\">blogged about the trade offs between Kafka and RabbitMQ</a> to document it. I hope it helps you in choosing the best pub-sub layer for your use case.</p>","permissions":{"edit":false,"delete":false,"__typename":"Permissions"},"publishedAt":"2021-12-04T10:21:35Z","decisionType":"giveAdvice","rootComments":[],"subjectTools":[{"id":"101231773865214260","fans":22158,"name":"Kafka","path":"/kafka","slug":"kafka","title":"Distributed, fault tolerant, high throughput pub-sub messaging system","votes":596,"stacks":19898,"imageUrl":"https://img.stackshare.io/service/1063/kazUJooF_400x400.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/kafka","followContext":null},{"id":"101231773864300849","fans":19257,"name":"RabbitMQ","path":"/rabbitmq","slug":"rabbitmq","title":"Open source multiprotocol messaging broker","votes":522,"stacks":18396,"imageUrl":"https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/rabbitmq","followContext":null}],"upvotesCount":10,"commentsCount":0},"__typename":"StackDecisionEdge"},{"node":{"id":"107360308702250938","link":null,"user":{"id":"104263183095835350","path":"/rizwansaeedshaikh","title":null,"imageUrl":"https://img.stackshare.io/user/611485/default_963a3399f15f75ff28c5cb4d2a7ab28ca8cbf2ac.jpeg","username":"rizwansaeedshaikh","__typename":"User","companyName":null,"displayName":"rizwansaeedshaikh"},"draft":false,"topics":[],"company":null,"flagged":false,"private":false,"toTools":[],"upvoted":false,"publicId":"107360308702250938","services":[],"createdAt":"2021-11-29T12:18:24Z","fromTools":[],"viewCount":95711,"__typename":"StackDecision","bookmarked":false,"rawContent":"It depends on your requirements like number of messages to be processed per second, real time messages vs delayed, number of servers available for your cluster, whether you need streaming, etc.. Kafka works for most use cases. \nNot related to answer but would like to add no matter whatever broker you chose, for connecting to the broker always go for the library provided by the broker rather than Spring kafka or Spring AMQP. If you use Spring, then you will be stuck with specific Spring versions. In case you find bugs in spring then difficult because you will have to upgrade entire application to use a later Spring core version. In general, use as minimum libraries as possible to get rid of nuisance of upgrading them when they are outdated or bugs are found with them. ","htmlContent":"<p>It depends on your requirements like number of messages to be processed per second, real time messages vs delayed, number of servers available for your cluster, whether you need streaming, etc.. Kafka works for most use cases. \nNot related to answer but would like to add no matter whatever broker you chose, for connecting to the broker always go for the library provided by the broker rather than Spring kafka or Spring AMQP. If you use Spring, then you will be stuck with specific Spring versions. In case you find bugs in spring then difficult because you will have to upgrade entire application to use a later Spring core version. In general, use as minimum libraries as possible to get rid of nuisance of upgrading them when they are outdated or bugs are found with them. </p>","permissions":{"edit":false,"delete":false,"__typename":"Permissions"},"publishedAt":"2021-11-29T12:18:24Z","decisionType":"giveAdvice","rootComments":[{"id":"107371626845552510","user":{"id":"107019240098549175","path":"/kaffarell","imageUrl":"https://img.stackshare.io/user/1042771/default_681f84a7404ae321dc63245332bdb19640e60db4.jpeg","__typename":"User","displayName":"kaffarell"},"content":"Thanks for the insight! A fast message broker would be important, persistency isn't. We also plan to deploy the message broker as a docker container to our cluster. I read somewhere online that kafka is not meant to be deployed as a container... Is that true? (What also confused me is that there isn't a official docker image for kafka).","flagged":false,"replies":[],"upvoted":false,"parentId":null,"postedAt":"2021-12-01T12:16:45Z","__typename":"Comment","upvotesCount":1},{"id":"107376999507493159","user":{"id":"106934922535996034","path":"/mak526","imageUrl":"https://img.stackshare.io/user/1030584/default_f25ede02a7d6f6a1466056003e860ffd637b12f4.png","__typename":"User","displayName":"Makarand Joshi"},"content":"Radis is bit different compared to Rabbit MQand Kafka so use Redis only if its for non critical message flow. Between Rabbit MQ and Kafka , our experience as been for large message processing application Rabbit becomes really unstable and even have encountered corrupt data so we switched to Kafka which is more reliable","flagged":false,"replies":[{"id":"107458531520039289","user":{"id":"103839182362437842","path":"/bipul2231","imageUrl":"https://img.stackshare.io/user/446607/default_8749382a4786ba9127fdc9a0e248e710a1107c49.jpg","__typename":"User","displayName":"Bipul Agarwal"},"content":"Hi Makarand, how easy was your journey from RabbitMQ to Kafka? Is it okay to ask if you have had any specific challenges as RabbitMQ sends to consumers while in Kafka Consumer needs to read. + Message structure is a bit different too? \n\nAlso, It would be nice to know if you migrated to Managed Kafka service or self hosted? (I am trying to understand how tough would it be to manage our own Kafka as we are almost finalising going with Kafka) :) \n\nThanks","flagged":false,"upvoted":false,"parentId":"107376999507493159","postedAt":"2021-12-16T20:37:45Z","__typename":"Comment","upvotesCount":0}],"upvoted":false,"parentId":null,"postedAt":"2021-12-02T11:03:05Z","__typename":"Comment","upvotesCount":1}],"subjectTools":[],"upvotesCount":5,"commentsCount":3},"__typename":"StackDecisionEdge"},{"node":{"id":"107386987839772932","link":null,"user":{"id":"106019818407274217","path":"/jimhillr","title":null,"imageUrl":"https://img.stackshare.io/user/934603/default_f2f5f1da7ba2440b0e311c89a0cf3b42b05c401b.jpg","username":"jimhillr","__typename":"User","companyName":null,"displayName":"Jim Hill"},"draft":false,"topics":[],"company":null,"flagged":false,"private":false,"toTools":[],"upvoted":false,"publicId":"107386987839772932","services":[],"createdAt":"2021-12-04T05:23:15Z","fromTools":[],"viewCount":76825,"__typename":"StackDecision","bookmarked":false,"rawContent":"I would not recommend RabbitMQ. It does not scale well.\n\nI would recommend Redis if you want non-durable, fast, distributed, and scalable messaging. Note it has almost no guarantees around at least once delivery and similar so you will have to handle that.\n\nI would recommend Kafka if you want the whole deal with a bit more bloat. It is durable, fast, distributed and scalable. It has few downsides other than a learning curve and higher cost.\n\nI currently use Redis as my message queue and plan to upgrade to Kafka in Q1","htmlContent":"<p>I would not recommend RabbitMQ. It does not scale well.</p>\n\n<p>I would recommend Redis if you want non-durable, fast, distributed, and scalable messaging. Note it has almost no guarantees around at least once delivery and similar so you will have to handle that.</p>\n\n<p>I would recommend Kafka if you want the whole deal with a bit more bloat. It is durable, fast, distributed and scalable. It has few downsides other than a learning curve and higher cost.</p>\n\n<p>I currently use Redis as my message queue and plan to upgrade to Kafka in Q1</p>","permissions":{"edit":false,"delete":false,"__typename":"Permissions"},"publishedAt":"2021-12-04T05:23:15Z","decisionType":"giveAdvice","rootComments":[],"subjectTools":[{"id":"101231773865214260","fans":22158,"name":"Kafka","path":"/kafka","slug":"kafka","title":"Distributed, fault tolerant, high throughput pub-sub messaging system","votes":596,"stacks":19898,"imageUrl":"https://img.stackshare.io/service/1063/kazUJooF_400x400.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/kafka","followContext":null},{"id":"101231773854768982","fans":47814,"name":"Redis","path":"/redis","slug":"redis","title":"Open source (BSD licensed), in-memory data structure store","votes":3866,"stacks":52292,"imageUrl":"https://img.stackshare.io/service/1031/default_cbce472cd134adc6688572f999e9122b9657d4ba.png","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/redis","followContext":null}],"upvotesCount":3,"commentsCount":0},"__typename":"StackDecisionEdge"},{"node":{"id":"107927893220970871","link":null,"user":{"id":"104347823796189243","path":"/sunilmchaudhari","title":"Team Lead","imageUrl":"https://img.stackshare.io/user/629354/default_2b6196d83db4d6c1b96bd5405650478ce65c36ba.png","username":"sunilmchaudhari","__typename":"User","companyName":"XYZ","displayName":"Sunil Chaudhari"},"draft":false,"topics":[],"company":null,"flagged":false,"private":false,"toTools":[],"upvoted":false,"publicId":"107927893220970871","services":[],"createdAt":"2022-03-09T18:02:36Z","fromTools":[],"viewCount":56058,"__typename":"StackDecision","bookmarked":false,"rawContent":"Hi,\nFirst of all, understand the difference. \nAll works as message brokers.\nAll know JSON.\nBut\nRedis is not a queue or topic. Its an in memory cache. \nRabbitMq/Kafka persists data on file system but redis holds in a temporary memory. If redis is down and if u cant use the cache dump wisely then ur data gone.\nRedis is very short lived broker though its fast due to less i/o operations and other commits that kafak does.\nI dont have much exp in RabbitMq so cant comment on that but RabbitMq is better in administration than open sourcen kafka in case your maanger dont want to pay money ….. 😂\n\nComing to decision…\nIf You are ready to risk/ compromise the in memory data inside cache then go for redis.\nIf you are not concerned about horizontal scaling and can do ur job by vertical scaling then go for redis. \nIf you want horizontal scaling and want to persist data on disk for fetching later then go for kafka. But u cant achieve speed unless you fine tune your consumers. Need better understanding of consumer threads, partitioning, poll intervals etc. \nIf you use confluent platform the dont even compare kafka with redis and rabbitmq.\n\n\nCheers! \nSunil. \n","htmlContent":"<p>Hi,\nFirst of all, understand the difference. \nAll works as message brokers.\nAll know JSON.\nBut\nRedis is not a queue or topic. Its an in memory cache. \nRabbitMq/Kafka persists data on file system but redis holds in a temporary memory. If redis is down and if u cant use the cache dump wisely then ur data gone.\nRedis is very short lived broker though its fast due to less i/o operations and other commits that kafak does.\nI dont have much exp in RabbitMq so cant comment on that but RabbitMq is better in administration than open sourcen kafka in case your maanger dont want to pay money ….. 😂</p>\n\n<p>Coming to decision…\nIf You are ready to risk/ compromise the in memory data inside cache then go for redis.\nIf you are not concerned about horizontal scaling and can do ur job by vertical scaling then go for redis. \nIf you want horizontal scaling and want to persist data on disk for fetching later then go for kafka. But u cant achieve speed unless you fine tune your consumers. Need better understanding of consumer threads, partitioning, poll intervals etc. \nIf you use confluent platform the dont even compare kafka with redis and rabbitmq.</p>\n\n<p>Cheers! \nSunil. </p>","permissions":{"edit":false,"delete":false,"__typename":"Permissions"},"publishedAt":"2022-03-09T18:02:36Z","decisionType":"giveAdvice","rootComments":[],"subjectTools":[],"upvotesCount":2,"commentsCount":0},"__typename":"StackDecisionEdge"}],"pageInfo":{"endCursor":"NA","__typename":"PageInfo","hasNextPage":false},"__typename":"StackDecisionConnection"},"company":null,"private":false,"toTools":[],"publicId":"107355650747834760","services":[{"name":"RabbitMQ","imageUrl":"https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg","thumbUrl":"https://img.stackshare.io/service/1061/thumb_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg","__typename":"Tool"},{"name":"Redis","imageUrl":"https://img.stackshare.io/service/1031/default_cbce472cd134adc6688572f999e9122b9657d4ba.png","thumbUrl":"https://img.stackshare.io/service/1031/thumb_cbce472cd134adc6688572f999e9122b9657d4ba.png","__typename":"Tool"},{"name":"Kafka","imageUrl":"https://img.stackshare.io/service/1063/kazUJooF_400x400.jpg","thumbUrl":"https://img.stackshare.io/service/1063/thumb_kazUJooF_400x400.jpg","__typename":"Tool"}],"fromTools":[],"viewCount":95837,"__typename":"StackDecision","htmlContent":"<p>We are currently moving to a microservice architecture and are debating about the different options there are to handle communication between services. We are currently considering <span class=\"tool\">Kafka</span>, <span class=\"tool\">Redis</span> or <span class=\"tool\">RabbitMQ</span> as a message broker. As RabbitMQ is a little bit older, we thought that it may be outdated. Is that true? Can RabbitMQ hold up to more modern tools like Redis and Kafka?</p>","publishedAt":"2021-11-28T16:33:49Z","decisionType":"getAdvice","subjectTools":[{"id":"101231773865214260","fans":22158,"name":"Kafka","path":"/kafka","slug":"kafka","title":"Distributed, fault tolerant, high throughput pub-sub messaging system","votes":596,"stacks":19898,"imageUrl":"https://img.stackshare.io/service/1063/kazUJooF_400x400.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/kafka","followContext":null},{"id":"101231773864300849","fans":19257,"name":"RabbitMQ","path":"/rabbitmq","slug":"rabbitmq","title":"Open source multiprotocol messaging broker","votes":522,"stacks":18396,"imageUrl":"https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/rabbitmq","followContext":null},{"id":"101231773854768982","fans":47814,"name":"Redis","path":"/redis","slug":"redis","title":"Open source (BSD licensed), in-memory data structure store","votes":3866,"stacks":52292,"imageUrl":"https://img.stackshare.io/service/1031/default_cbce472cd134adc6688572f999e9122b9657d4ba.png","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/redis","followContext":null}],"upvotesCount":4},"__typename":"StackDecisionEdge"},{"node":{"id":"105121118397386240","user":{"id":"105121076344442436","title":"Software Engineer","imageUrl":"https://img.stackshare.io/user/778879/default_7057c9ded0ac53ed0988c8ef0b7dd11de05048ff.jpeg","thumbUrl":"https://img.stackshare.io/user/778879/thumb_7057c9ded0ac53ed0988c8ef0b7dd11de05048ff.jpeg","username":"pulkitsapra","__typename":"User","companyName":"","displayName":"Pulkit Sapra"},"stack":null,"topics":[],"answers":{"count":1,"edges":[{"node":{"id":"105171764722647865","link":null,"user":{"id":"104433598071803426","path":"/anis_zehani","title":"Founder","imageUrl":"https://img.stackshare.io/user/648007/default_35fa25cc31b4491cfb55e72bf666a2be8ef59c0d.jpg","username":"anis_zehani","__typename":"User","companyName":"Odix","displayName":"Anis Zehani"},"draft":false,"topics":[],"company":null,"flagged":false,"private":false,"toTools":[],"upvoted":false,"publicId":"105171764722647865","services":[],"createdAt":"2020-11-08T00:02:53Z","fromTools":[],"viewCount":209525,"__typename":"StackDecision","bookmarked":false,"rawContent":"Hello, i highly recommend Apache Kafka, to me it's the best.\nYou can deploy it in cluster mode inside K8S, thus you can have a Highly available system (also auto scalable).\n\nGood luck ","htmlContent":"<p>Hello, i highly recommend Apache Kafka, to me it's the best.\nYou can deploy it in cluster mode inside K8S, thus you can have a Highly available system (also auto scalable).</p>\n\n<p>Good luck </p>","permissions":{"edit":false,"delete":false,"__typename":"Permissions"},"publishedAt":"2020-11-08T00:02:53Z","decisionType":"giveAdvice","rootComments":[],"subjectTools":[{"id":"101231773865214260","fans":22158,"name":"Kafka","path":"/kafka","slug":"kafka","title":"Distributed, fault tolerant, high throughput pub-sub messaging system","votes":596,"stacks":19898,"imageUrl":"https://img.stackshare.io/service/1063/kazUJooF_400x400.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/kafka","followContext":null}],"upvotesCount":1,"commentsCount":0},"__typename":"StackDecisionEdge"}],"pageInfo":{"endCursor":"MQ","__typename":"PageInfo","hasNextPage":false},"__typename":"StackDecisionConnection"},"company":null,"private":false,"toTools":[],"publicId":"105121118397386240","services":[{"name":"Kubernetes","imageUrl":"https://img.stackshare.io/service/1885/21_d3cvM.png","thumbUrl":"https://img.stackshare.io/service/1885/thumb_21_d3cvM.png","__typename":"Tool"},{"name":"Celery","imageUrl":"https://img.stackshare.io/service/1075/celery.png","thumbUrl":"https://img.stackshare.io/service/1075/thumb_celery.png","__typename":"Tool"},{"name":"RabbitMQ","imageUrl":"https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg","thumbUrl":"https://img.stackshare.io/service/1061/thumb_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg","__typename":"Tool"},{"name":"Amazon SQS","imageUrl":"https://img.stackshare.io/service/395/amazon-sqs.png","thumbUrl":"https://img.stackshare.io/service/395/thumb_amazon-sqs.png","__typename":"Tool"},{"name":"Django","imageUrl":"https://img.stackshare.io/service/994/4aGjtNQv.png","thumbUrl":"https://img.stackshare.io/service/994/thumb_4aGjtNQv.png","__typename":"Tool"}],"fromTools":[],"viewCount":303637,"__typename":"StackDecision","htmlContent":"<p>Hi! I am creating a scraping system in <span class=\"tool\">Django</span>, which involves long running tasks between 1 minute &amp; 1 Day.\nAs I am new to Message Brokers and Task Queues, I need advice on which architecture to use for my system. ( <span class=\"tool\">Amazon SQS</span>, <span class=\"tool\">RabbitMQ</span>, or <span class=\"tool\">Celery</span>).\nThe system should be autoscalable using <span class=\"tool\">Kubernetes</span>(K8) based on the number of pending tasks in the queue.</p>","publishedAt":"2020-10-30T01:22:51Z","decisionType":"getAdvice","subjectTools":[{"id":"101231773618167288","fans":2337,"name":"Amazon SQS","path":"/amazon-sqs","slug":"amazon-sqs","title":"Fully managed message queuing service","votes":167,"stacks":3049,"imageUrl":"https://img.stackshare.io/service/395/amazon-sqs.png","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/amazon-sqs","followContext":null},{"id":"101231774206661614","fans":50982,"name":"Kubernetes","path":"/kubernetes","slug":"kubernetes","title":"Manage a cluster of Linux containers as a single system to accelerate Dev and simplify Ops","votes":639,"stacks":49934,"imageUrl":"https://img.stackshare.io/service/1885/21_d3cvM.png","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/kubernetes","followContext":null},{"id":"101231773864300849","fans":19257,"name":"RabbitMQ","path":"/rabbitmq","slug":"rabbitmq","title":"Open source multiprotocol messaging broker","votes":522,"stacks":18396,"imageUrl":"https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/rabbitmq","followContext":null}],"upvotesCount":7},"__typename":"StackDecisionEdge"},{"node":{"id":"104953686570440715","user":{"id":"104953621551102852","title":"","imageUrl":"https://img.stackshare.io/user/749177/default_acf047196206f5632f974b110dc549563cc21b4c.jpg","thumbUrl":"https://img.stackshare.io/user/749177/thumb_acf047196206f5632f974b110dc549563cc21b4c.jpg","username":"owgittshan","__typename":"User","companyName":"","displayName":"Shantha Dodmane"},"stack":null,"topics":[],"answers":{"count":1,"edges":[{"node":{"id":"104982917897247571","link":null,"user":{"id":"101231994755169189","path":"/TravisJoe","title":null,"imageUrl":"https://img.stackshare.io/user/11477/default_e3f878bfda87864690a91dc06996d0705790743d.jpeg","username":"TravisJoe","__typename":"User","companyName":null,"displayName":"Travis Travelstead"},"draft":false,"topics":[],"company":null,"flagged":false,"private":false,"toTools":[],"upvoted":false,"publicId":"104982917897247571","services":[],"createdAt":"2020-10-05T15:36:39Z","fromTools":[],"viewCount":173383,"__typename":"StackDecision","bookmarked":false,"rawContent":"For large amounts of small tasks and caches I have had good luck with Redis and RQ. I have not personally used celery but I am fairly sure it would scale well, and I have not used RabbitMQ for anything besides communication between services. If you prefer python my suggestions should feel comfortable.\n\nSorry I do not have a more information","htmlContent":"<p>For large amounts of small tasks and caches I have had good luck with Redis and RQ. I have not personally used celery but I am fairly sure it would scale well, and I have not used RabbitMQ for anything besides communication between services. If you prefer python my suggestions should feel comfortable.</p>\n\n<p>Sorry I do not have a more information</p>","permissions":{"edit":false,"delete":false,"__typename":"Permissions"},"publishedAt":"2020-10-05T15:36:39Z","decisionType":"giveAdvice","rootComments":[],"subjectTools":[{"id":"104706509145274094","fans":3,"name":"rq","path":"/pypi-rq","slug":"pypi-rq","title":"RQ is a simple","votes":0,"stacks":28,"imageUrl":"https://img.stackshare.io/package/20393/default_ec7f908dc4ac3533950df7d8e371292c0bdc3812.png","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/pypi-rq","followContext":null},{"id":"101231773854768982","fans":47814,"name":"Redis","path":"/redis","slug":"redis","title":"Open source (BSD licensed), in-memory data structure store","votes":3866,"stacks":52292,"imageUrl":"https://img.stackshare.io/service/1031/default_cbce472cd134adc6688572f999e9122b9657d4ba.png","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/redis","followContext":null}],"upvotesCount":5,"commentsCount":0},"__typename":"StackDecisionEdge"}],"pageInfo":{"endCursor":"MQ","__typename":"PageInfo","hasNextPage":false},"__typename":"StackDecisionConnection"},"company":null,"private":false,"toTools":[],"publicId":"104953686570440715","services":[{"name":"MongoDB","imageUrl":"https://img.stackshare.io/service/1030/leaf-360x360.png","thumbUrl":"https://img.stackshare.io/service/1030/thumb_leaf-360x360.png","__typename":"Tool"},{"name":"Celery","imageUrl":"https://img.stackshare.io/service/1075/celery.png","thumbUrl":"https://img.stackshare.io/service/1075/thumb_celery.png","__typename":"Tool"},{"name":"RabbitMQ","imageUrl":"https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg","thumbUrl":"https://img.stackshare.io/service/1061/thumb_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg","__typename":"Tool"}],"fromTools":[],"viewCount":191665,"__typename":"StackDecision","htmlContent":"<p>I am just a beginner at these two technologies. </p>\n\n<p>Problem statement: I am getting lakh of users from the sequel server for whom I need to create caches in <span class=\"tool\">MongoDB</span> by making different REST API requests.</p>\n\n<p>Here these users can be treated as messages.\nEach REST API request is a task.</p>\n\n<p>I am confused about whether I should go for <span class=\"tool\">RabbitMQ</span> alone or <span class=\"tool\">Celery</span>. </p>\n\n<p>If I have to go with <span class=\"tool\">RabbitMQ</span>, I prefer to use python with Pika module. But the challenge with Pika is, it is not thread-safe. So I am not finding a way to execute a lakh of API requests in parallel using multiple threads using Pika.</p>\n\n<p>If I have to go with <span class=\"tool\">Celery</span>, I don't know how I can achieve better scalability in executing these API requests in parallel.</p>","publishedAt":"2020-09-30T11:42:44Z","decisionType":"getAdvice","subjectTools":[{"id":"101231773871944512","fans":1843,"name":"Celery","path":"/celery","slug":"celery","title":"Distributed task queue","votes":279,"stacks":1519,"imageUrl":"https://img.stackshare.io/service/1075/celery.png","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/celery","followContext":null},{"id":"101231773864300849","fans":19257,"name":"RabbitMQ","path":"/rabbitmq","slug":"rabbitmq","title":"Open source multiprotocol messaging broker","votes":522,"stacks":18396,"imageUrl":"https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/rabbitmq","followContext":null}],"upvotesCount":3},"__typename":"StackDecisionEdge"},{"node":{"id":"104919520023977022","user":{"id":"104919475449237972","title":"Software engineer","imageUrl":"https://img.stackshare.io/user/742691/default_1ee696f961dc02e1870ac1a980d855ee0ac6b952.jpg","thumbUrl":"https://img.stackshare.io/user/742691/thumb_1ee696f961dc02e1870ac1a980d855ee0ac6b952.jpg","username":"meili1793","__typename":"User","companyName":"Digital Science","displayName":"Meili Triantafyllidi"},"stack":null,"topics":[],"answers":{"count":2,"edges":[{"node":{"id":"104956226627666357","link":null,"user":{"id":"101232089555235071","path":"/shishirpy","title":"","imageUrl":"https://img.stackshare.io/user/193049/default_504d3ffa9b5ec4589c4fdf69bac5ad8c26b2ea88.jpeg","username":"shishirpy","__typename":"User","companyName":"Staples","displayName":"Shishir Pandey"},"draft":false,"topics":[],"company":null,"flagged":false,"private":false,"toTools":[],"upvoted":false,"publicId":"104956226627666357","services":[],"createdAt":"2020-09-30T22:28:42Z","fromTools":[],"viewCount":247012,"__typename":"StackDecision","bookmarked":false,"rawContent":"ZeroMQ is fast but you need to build build reliability yourself. There are a number of patterns described in the zeromq guide. I have used RabbitMQ before which gives lot of functionality out of the box, you can probably use the `worker queues` example from the tutorial, it can also persists messages in the queue.\n\nI haven't used Amazon SQS before. Another tool you could use is Kafka.","htmlContent":"<p>ZeroMQ is fast but you need to build build reliability yourself. There are a number of patterns described in the zeromq guide. I have used RabbitMQ before which gives lot of functionality out of the box, you can probably use the <code>worker queues</code> example from the tutorial, it can also persists messages in the queue.</p>\n\n<p>I haven't used Amazon SQS before. Another tool you could use is Kafka.</p>","permissions":{"edit":false,"delete":false,"__typename":"Permissions"},"publishedAt":"2020-09-30T22:28:42Z","decisionType":"giveAdvice","rootComments":[{"id":"105943940541394763","user":{"id":"102723335481835606","path":"/blackstrype","imageUrl":"https://img.stackshare.io/user/306941/default_39f22ba545b15d7d050122099995b34c2ed65525.jpeg","__typename":"User","displayName":"Scott MESSNER"},"content":"Amazon seems to offer a number of messaging solutions. The simplest is Amazon SQS, yes. Another is Amazon MQ if you wish to have a hosted RabbitMQ or ActiveMQ messaging platform that is compatible with JMS/AMQP. You will want to measure your needs against the constraints of your messaging scenarios. If you have a small team and you're already on AWS, a quick working solution would be to use the ready-to-go solutions from AWS. My guess is that it would cost more to hire (an) engineer(s) to build/maintain your messaging queue than to use the service-at-scale solutions of AWS. If you have a non-global messaging system you could also consider deploying your own small cluster using RabbitMQ as suggested by Shishir. Another excellent solution might be NATS.io which has a strong community, impressive performance, and is backed by CNCF.\n\nI admit there are a lot of options -- if you wish to own and grow your messaging needs in house, then hire a team and start building. ZMQ is flexible but you will need to write the persistency module and adapt the clustering to your needs. Kafka is a resilient and distributed solution, but it requires an operations team to maintain and handle load-balancing. RabbitMQ seems to be the defacto for getting up and running but can eventually encounter clustering and scaling issues. And on the other hand, the giants offer ready-to-go messaging solutions that end up costing you little, but risk to vendor lock you if you're not careful.\n\nI suppose I ultimately vote for taking the AWS solution -- but check the SLA and performance criteria of your service.","flagged":false,"replies":[],"upvoted":false,"parentId":null,"postedAt":"2021-03-24T08:57:21Z","__typename":"Comment","upvotesCount":0}],"subjectTools":[{"id":"101231773864300849","fans":19257,"name":"RabbitMQ","path":"/rabbitmq","slug":"rabbitmq","title":"Open source multiprotocol messaging broker","votes":522,"stacks":18396,"imageUrl":"https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/rabbitmq","followContext":null}],"upvotesCount":6,"commentsCount":1},"__typename":"StackDecisionEdge"},{"node":{"id":"107372900444595027","link":null,"user":{"id":"103621952117573542","path":"/kevindeyne","title":"Principal Software Engineer","imageUrl":"https://img.stackshare.io/user/372837/default_ed16fc4ed3289e3fc76b01a035aca278a18c34ea.jpeg","username":"kevindeyne","__typename":"User","companyName":"Accurate Background","displayName":"Kevin Deyne"},"draft":false,"topics":[],"company":null,"flagged":false,"private":false,"toTools":[],"upvoted":false,"publicId":"107372900444595027","services":[],"createdAt":"2021-12-01T17:40:38Z","fromTools":[],"viewCount":119977,"__typename":"StackDecision","bookmarked":false,"rawContent":"Both would do the trick, but there are some nuances. We work with both.\n\nFrom the sound of it, your main focus is \"not losing messages\". In that case, I would go with RabbitMQ with a high availability policy (ha-mode=all) and a main/retry/error queue pattern. \n\nPush messages to an exchange, which sends them to the main queue. \nIf an error occurs, push the errored out message to the retry exchange, which forwards it to the retry queue. Give the retry queue a x-message-ttl and set the main exchange as a dead-letter-exchange.\nIf your message has been retried several times, push it to the error exchange, where the message can remain until someone has time to look at it.\n\nThis is a very useful and resilient pattern that allows you to never lose messages. With the high availability policy, you make sure that if one of your rabbitmq nodes dies, another can take over and messages are already mirrored to it.\n\nThis is not really possible with SQS, because SQS is a lot more focused on throughput and scaling. Combined with SNS it can do interesting things like deduplication of messages and such. That said, one thing core to its design is that messages have a maximum retention time. The idea is that a message that has stayed in an SQS queue for a while serves no more purpose after a while, so it gets removed - so as to not block up any listener resources for a long time. You can also set up a DLQ here, but these similarly do not hold onto messages forever. Since you seem to depend on messages surviving at all cost, I would suggest that the scaling/throughput benefit of SQS does not outweigh the difference in approach to messages there.","htmlContent":"<p>Both would do the trick, but there are some nuances. We work with both.</p>\n\n<p>From the sound of it, your main focus is \"not losing messages\". In that case, I would go with RabbitMQ with a high availability policy (ha-mode=all) and a main/retry/error queue pattern. </p>\n\n<p>Push messages to an exchange, which sends them to the main queue. \nIf an error occurs, push the errored out message to the retry exchange, which forwards it to the retry queue. Give the retry queue a x-message-ttl and set the main exchange as a dead-letter-exchange.\nIf your message has been retried several times, push it to the error exchange, where the message can remain until someone has time to look at it.</p>\n\n<p>This is a very useful and resilient pattern that allows you to never lose messages. With the high availability policy, you make sure that if one of your rabbitmq nodes dies, another can take over and messages are already mirrored to it.</p>\n\n<p>This is not really possible with SQS, because SQS is a lot more focused on throughput and scaling. Combined with SNS it can do interesting things like deduplication of messages and such. That said, one thing core to its design is that messages have a maximum retention time. The idea is that a message that has stayed in an SQS queue for a while serves no more purpose after a while, so it gets removed - so as to not block up any listener resources for a long time. You can also set up a DLQ here, but these similarly do not hold onto messages forever. Since you seem to depend on messages surviving at all cost, I would suggest that the scaling/throughput benefit of SQS does not outweigh the difference in approach to messages there.</p>","permissions":{"edit":false,"delete":false,"__typename":"Permissions"},"publishedAt":"2021-12-01T17:40:38Z","decisionType":"giveAdvice","rootComments":[],"subjectTools":[{"id":"101231773864300849","fans":19257,"name":"RabbitMQ","path":"/rabbitmq","slug":"rabbitmq","title":"Open source multiprotocol messaging broker","votes":522,"stacks":18396,"imageUrl":"https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/rabbitmq","followContext":null}],"upvotesCount":5,"commentsCount":0},"__typename":"StackDecisionEdge"}],"pageInfo":{"endCursor":"Mg","__typename":"PageInfo","hasNextPage":false},"__typename":"StackDecisionConnection"},"company":null,"private":false,"toTools":[],"publicId":"104919520023977022","services":[{"name":"Amazon SQS","imageUrl":"https://img.stackshare.io/service/395/amazon-sqs.png","thumbUrl":"https://img.stackshare.io/service/395/thumb_amazon-sqs.png","__typename":"Tool"},{"name":"RabbitMQ","imageUrl":"https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg","thumbUrl":"https://img.stackshare.io/service/1061/thumb_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg","__typename":"Tool"},{"name":"ZeroMQ","imageUrl":"https://img.stackshare.io/service/1064/zeromq.png","thumbUrl":"https://img.stackshare.io/service/1064/thumb_zeromq.png","__typename":"Tool"}],"fromTools":[],"viewCount":324177,"__typename":"StackDecision","htmlContent":"<p>Hi, we are in a ZMQ set up in a push/pull pattern, and we currently start to have more traffic and cases that the service is unavailable or stuck. We want to:\n* Not loose messages in services outages\n* Safely restart service without losing messages (<span class=\"tool\">ZeroMQ</span> seems to need to close the socket in the receiver before restart manually) </p>\n\n<p>Do you have experience with this setup with ZeroMQ? Would you suggest <span class=\"tool\">RabbitMQ</span> or <span class=\"tool\">Amazon SQS</span> (we are in AWS setup) instead? Something else?</p>\n\n<p>Thank you for your time</p>","publishedAt":"2020-09-24T10:53:44Z","decisionType":"getAdvice","subjectTools":[{"id":"101231773618167288","fans":2337,"name":"Amazon SQS","path":"/amazon-sqs","slug":"amazon-sqs","title":"Fully managed message queuing service","votes":167,"stacks":3049,"imageUrl":"https://img.stackshare.io/service/395/amazon-sqs.png","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/amazon-sqs","followContext":null},{"id":"101231773864300849","fans":19257,"name":"RabbitMQ","path":"/rabbitmq","slug":"rabbitmq","title":"Open source multiprotocol messaging broker","votes":522,"stacks":18396,"imageUrl":"https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/rabbitmq","followContext":null},{"id":"101231773865802179","fans":617,"name":"ZeroMQ","path":"/zeromq","slug":"zeromq","title":"Fast, lightweight messaging library that allows you to design complex communication system without much effort","votes":72,"stacks":227,"imageUrl":"https://img.stackshare.io/service/1064/zeromq.png","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/zeromq","followContext":null}],"upvotesCount":6},"__typename":"StackDecisionEdge"},{"node":{"id":"104603392049444214","user":{"id":"104534646885503760","title":"Technology Manager","imageUrl":"https://img.stackshare.io/user/668701/default_382c151284609c10523291a58bde93e8e671241e.jpg","thumbUrl":"https://img.stackshare.io/user/668701/thumb_382c151284609c10523291a58bde93e8e671241e.jpg","username":"andrealmeida1991","__typename":"User","companyName":"GS1 Portugal - Codipor","displayName":"André Almeida"},"stack":null,"topics":[],"answers":{"count":2,"edges":[{"node":{"id":"104705749339116404","link":null,"user":{"id":"104704943671359626","path":"/massimogiambona","title":null,"imageUrl":"https://img.stackshare.io/user/699868/default_fd3ec5ae52d699e62b7847e8a25db770d4d5835a.png","username":"massimogiambona","__typename":"User","companyName":null,"displayName":"Massimo Giambona"},"draft":false,"topics":[],"company":null,"flagged":false,"private":false,"toTools":[],"upvoted":false,"publicId":"104705749339116404","services":[],"createdAt":"2020-08-17T16:49:02Z","fromTools":[],"viewCount":287910,"__typename":"StackDecision","bookmarked":false,"rawContent":"A Pro of Azure Service Bus is reliability and persistence: you can send message when receiver is offline; receiver can read it when it back online. A Cons is costs and message size.\nYou can consider also [SignalR](https://dotnet.microsoft.com/apps/aspnet/signalr)","htmlContent":"<p>A Pro of Azure Service Bus is reliability and persistence: you can send message when receiver is offline; receiver can read it when it back online. A Cons is costs and message size.\nYou can consider also <a href=\"https://dotnet.microsoft.com/apps/aspnet/signalr\" rel=\"nofollow noopener\" target=\"_blank\">SignalR</a></p>","permissions":{"edit":false,"delete":false,"__typename":"Permissions"},"publishedAt":"2020-08-17T16:49:02Z","decisionType":"giveAdvice","rootComments":[],"subjectTools":[{"id":"101231775292098442","fans":527,"name":"Azure Service Bus","path":"/azure-service-bus","slug":"azure-service-bus","title":"Reliable cloud messaging as a service (MaaS) ","votes":7,"stacks":460,"imageUrl":"https://img.stackshare.io/service/3980/Azure-Service-Bus.png","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/azure-service-bus","followContext":null},{"id":"101231775309402354","fans":1275,"name":"SignalR","path":"/signalr","slug":"signalr","title":"A new library for ASP.NET developers that makes developing real-time web functionality easy.","votes":133,"stacks":510,"imageUrl":"https://img.stackshare.io/service/4013/SignalR-logo.png","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/signalr","followContext":null}],"upvotesCount":3,"commentsCount":0},"__typename":"StackDecisionEdge"},{"node":{"id":"104665529097694736","link":null,"user":{"id":"104665503595941711","path":"/mmadzia","title":"","imageUrl":"https://img.stackshare.io/user/692032/default_2736dad5896921ead65950372301ff219bbe75df.jpg","username":"mmadzia","__typename":"User","companyName":"MotionCX","displayName":"Matt Madzia"},"draft":false,"topics":[],"company":null,"flagged":false,"private":false,"toTools":[],"upvoted":false,"publicId":"104665529097694736","services":[{"id":"101231775292098442","fans":527,"name":"Azure Service Bus","path":"/azure-service-bus","slug":"azure-service-bus","title":"Reliable cloud messaging as a service (MaaS) ","votes":7,"stacks":460,"imageUrl":"https://img.stackshare.io/service/3980/Azure-Service-Bus.png","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/azure-service-bus","followContext":null}],"createdAt":"2020-08-10T14:20:30Z","fromTools":[],"viewCount":292446,"__typename":"StackDecision","bookmarked":false,"rawContent":"There are many different messaging frameworks available for IPC use. It's not really a question of how \"new\" the technology is, but what you need it to do. @{Azure Service Bus}|tool:3980| can be a great service to use, but it can also take a lot of effort to administrate and maintain that can make it costly to use unless you need the more advanced features it offers for routing, sequencing, delivery, etc. I would recommend checking out this link to get a basic idea of different messaging architectures. These only cover Azure services, but there are many other solutions that use similar architectural models.\n\nhttps://docs.microsoft.com/en-us/azure/event-grid/compare-messaging-services\n","htmlContent":"<p>There are many different messaging frameworks available for IPC use. It's not really a question of how \"new\" the technology is, but what you need it to do. <span class=\"tool\">Azure Service Bus</span> can be a great service to use, but it can also take a lot of effort to administrate and maintain that can make it costly to use unless you need the more advanced features it offers for routing, sequencing, delivery, etc. I would recommend checking out this link to get a basic idea of different messaging architectures. These only cover Azure services, but there are many other solutions that use similar architectural models.</p>\n\n<p><a href=\"https://docs.microsoft.com/en-us/azure/event-grid/compare-messaging-services\" rel=\"nofollow noopener\" target=\"_blank\">https://docs.microsoft.com/en-us/azure/event-grid/compare-messaging-services</a></p>","permissions":{"edit":false,"delete":false,"__typename":"Permissions"},"publishedAt":"2020-08-10T14:20:30Z","decisionType":"giveAdvice","rootComments":[],"subjectTools":[],"upvotesCount":2,"commentsCount":0},"__typename":"StackDecisionEdge"}],"pageInfo":{"endCursor":"Mg","__typename":"PageInfo","hasNextPage":false},"__typename":"StackDecisionConnection"},"company":null,"private":false,"toTools":[],"publicId":"104603392049444214","services":[{"name":".NET Core","imageUrl":"https://img.stackshare.io/service/6403/default_91fc1f0ee315262794273aa1387eaf8fed8436e6.png","thumbUrl":"https://img.stackshare.io/service/6403/thumb_91fc1f0ee315262794273aa1387eaf8fed8436e6.png","__typename":"Tool"}],"fromTools":[],"viewCount":301011,"__typename":"StackDecision","htmlContent":"<p>Hello dear developers, our company is starting a new project for a new Web App, and we are currently designing the Architecture (we will be using <span class=\"tool\">.NET Core</span>). We want to embark on something new, so we are thinking about migrating from a monolithic perspective to a microservices perspective. We wish to containerize those microservices and make them independent from each other. Is it the best way for microservices to communicate with each other via ESB, or is there a new way of doing this? Maybe complementing with an API Gateway? Can you recommend something else different than the two tools I provided?</p>\n\n<p>We want something good for Cost/Benefit; performance should be high too (but not the primary constraint). </p>\n\n<p>Thank you very much in advance :)</p>","publishedAt":"2020-07-30T14:58:14Z","decisionType":"getAdvice","subjectTools":[{"id":"101231775292098442","fans":527,"name":"Azure Service Bus","path":"/azure-service-bus","slug":"azure-service-bus","title":"Reliable cloud messaging as a service (MaaS) ","votes":7,"stacks":460,"imageUrl":"https://img.stackshare.io/service/3980/Azure-Service-Bus.png","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/azure-service-bus","followContext":null},{"id":"101231773864300849","fans":19257,"name":"RabbitMQ","path":"/rabbitmq","slug":"rabbitmq","title":"Open source multiprotocol messaging broker","votes":522,"stacks":18396,"imageUrl":"https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/rabbitmq","followContext":null}],"upvotesCount":5},"__typename":"StackDecisionEdge"},{"node":{"id":"104131613100808770","user":{"id":"104131542572859926","title":"Software Engineer","imageUrl":"https://img.stackshare.io/user/579858/default_c5abec150e1a9863048d2c1280d02f3addbb8d33.jpg","thumbUrl":"https://img.stackshare.io/user/579858/thumb_c5abec150e1a9863048d2c1280d02f3addbb8d33.jpg","username":"mprasanth203581","__typename":"User","companyName":"LightMetrics","displayName":"MITHIRIDI PRASANTH"},"stack":{"id":"104131553782176533","name":"My Stack","path":"/mprasanth203581/my-stack","owner":{"id":"104131542572859926","imageUrl":"https://img.stackshare.io/user/579858/default_c5abec150e1a9863048d2c1280d02f3addbb8d33.jpg","username":"mprasanth203581","__typename":"User"},"private":false,"imageUrl":"https://img.stackshare.io/stack/640581/default_b3797192c261e7984223939e506febd2c701fc01.jpg","__typename":"Stack","identifier":"mprasanth203581/my-stack"},"topics":[],"answers":{"count":1,"edges":[{"node":{"id":"104281867548975543","link":null,"user":{"id":"104276824662424358","path":"/aparedes","title":"Lead Senior Software Engineer","imageUrl":"https://img.stackshare.io/user/614554/default_31430b5cc4fb368d87437974ea88a723885642c1.jpg","username":"aparedes","__typename":"User","companyName":"InTouch Technology","displayName":"Andres Paredes"},"draft":false,"topics":[],"company":null,"flagged":false,"private":false,"toTools":[],"upvoted":false,"publicId":"104281867548975543","services":[],"createdAt":"2020-06-03T20:10:19Z","fromTools":[],"viewCount":161080,"__typename":"StackDecision","bookmarked":false,"rawContent":"Mithiridi, I believe you are talking about two different things.\n1. If you need to process messages with delays of more 15m or at specific times, it's not a good idea to use queues, independently of tool SQM, Rabbit or Amazon MQ. you should considerer another approach using a scheduled job. \n2. For dead queues and policy retries RabbitMQ, for example, doesn't support your use case. \nhttps://medium.com/@kiennguyen88/rabbitmq-delay-retry-schedule-with-dead-letter-exchange-31fb25a440fc\nI'm not sure if that is possible SNS/SQS support, they have a maximum delay for delivery (maxDelayTarget) in seconds but it's not clear the number. You can check this out: https://docs.aws.amazon.com/sns/latest/dg/sns-message-delivery-retries.html","htmlContent":"<p>Mithiridi, I believe you are talking about two different things.\n1. If you need to process messages with delays of more 15m or at specific times, it's not a good idea to use queues, independently of tool SQM, Rabbit or Amazon MQ. you should considerer another approach using a scheduled job. \n2. For dead queues and policy retries RabbitMQ, for example, doesn't support your use case. \n<a href=\"https://medium.com/@kiennguyen88/rabbitmq-delay-retry-schedule-with-dead-letter-exchange-31fb25a440fc\" rel=\"nofollow noopener\" target=\"_blank\">https://medium.com/@kiennguyen88/rabbitmq-delay-retry-schedule-with-dead-letter-exchange-31fb25a440fc</a>\nI'm not sure if that is possible SNS/SQS support, they have a maximum delay for delivery (maxDelayTarget) in seconds but it's not clear the number. You can check this out: <a href=\"https://docs.aws.amazon.com/sns/latest/dg/sns-message-delivery-retries.html\" rel=\"nofollow noopener\" target=\"_blank\">https://docs.aws.amazon.com/sns/latest/dg/sns-message-delivery-retries.html</a></p>","permissions":{"edit":false,"delete":false,"__typename":"Permissions"},"publishedAt":"2020-06-03T20:10:19Z","decisionType":"giveAdvice","rootComments":[],"subjectTools":[{"id":"101231773618167288","fans":2337,"name":"Amazon SQS","path":"/amazon-sqs","slug":"amazon-sqs","title":"Fully managed message queuing service","votes":167,"stacks":3049,"imageUrl":"https://img.stackshare.io/service/395/amazon-sqs.png","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/amazon-sqs","followContext":null}],"upvotesCount":1,"commentsCount":0},"__typename":"StackDecisionEdge"}],"pageInfo":{"endCursor":"MQ","__typename":"PageInfo","hasNextPage":false},"__typename":"StackDecisionConnection"},"company":null,"private":false,"toTools":[],"publicId":"104131613100808770","services":[{"name":"Amazon MQ","imageUrl":"https://img.stackshare.io/service/7971/FrshWMKt_400x400.jpg","thumbUrl":"https://img.stackshare.io/service/7971/thumb_FrshWMKt_400x400.jpg","__typename":"Tool"},{"name":"Amazon SQS","imageUrl":"https://img.stackshare.io/service/395/amazon-sqs.png","thumbUrl":"https://img.stackshare.io/service/395/thumb_amazon-sqs.png","__typename":"Tool"}],"fromTools":[],"viewCount":202583,"__typename":"StackDecision","htmlContent":"<p>I want to schedule a message. <span class=\"tool\">Amazon SQS</span> provides a delay of 15 minutes, but I want it in some hours.</p>\n\n<p>Example: Let's say a Message1 is consumed by a consumer A but somehow it failed inside the consumer. I would want to put it in a queue and retry after 4hrs.\nCan I do this in <span class=\"tool\">Amazon MQ</span>? I have seen in some Amazon MQ videos saying scheduling messages can be done. But, I'm not sure how.</p>","publishedAt":"2020-05-08T07:18:38Z","decisionType":"getAdvice","subjectTools":[{"id":"101231777401770188","fans":316,"name":"Amazon MQ","path":"/amazon-mq","slug":"amazon-mq","title":"Managed Message Broker Service for ActiveMQ","votes":11,"stacks":50,"imageUrl":"https://img.stackshare.io/service/7971/FrshWMKt_400x400.jpg","verified":true,"following":false,"__typename":"Tool","canonicalUrl":"/amazon-mq","followContext":null},{"id":"101231773618167288","fans":2337,"name":"Amazon SQS","path":"/amazon-sqs","slug":"amazon-sqs","title":"Fully managed message queuing service","votes":167,"stacks":3049,"imageUrl":"https://img.stackshare.io/service/395/amazon-sqs.png","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/amazon-sqs","followContext":null}],"upvotesCount":4},"__typename":"StackDecisionEdge"},{"node":{"id":"103984675742758604","user":{"id":"103984658330410614","title":"","imageUrl":"https://img.stackshare.io/user/506971/default_a0ed15f8d02269d3d8065228a0d58099b56160b8.jpg","thumbUrl":"https://img.stackshare.io/user/506971/thumb_a0ed15f8d02269d3d8065228a0d58099b56160b8.jpg","username":"sagarviradiya20082522","__typename":"User","companyName":"","displayName":"viradiya sagar"},"stack":null,"topics":[],"answers":{"count":4,"edges":[{"node":{"id":"104000814039450831","link":null,"user":{"id":"104000774339796251","path":"/alurimahee","title":"Lead Architect","imageUrl":"https://img.stackshare.io/user/514581/default_70b58ae1278f632428aca5d48db4c57f500fdd8f.jpg","username":"alurimahee","__typename":"User","companyName":null,"displayName":"Maheedhar Aluri"},"draft":false,"topics":[],"company":null,"flagged":false,"private":false,"toTools":[],"upvoted":false,"publicId":"104000814039450831","services":[],"createdAt":"2020-04-15T04:54:43Z","fromTools":[],"viewCount":582601,"__typename":"StackDecision","bookmarked":false,"rawContent":"Kafka is an Enterprise Messaging Framework whereas Redis is an Enterprise Cache Broker, in-memory database and high performance database.Both are having their own advantages, but they are different in usage and implementation. Now if you are creating microservices check the user consumption volumes, its generating logs, scalability, systems to be integrated and so on. I feel for your scenario initially you can go with KAFKA bu as the throughput, consumption and other factors are scaling then gradually you can add Redis accordingly.","htmlContent":"<p>Kafka is an Enterprise Messaging Framework whereas Redis is an Enterprise Cache Broker, in-memory database and high performance database.Both are having their own advantages, but they are different in usage and implementation. Now if you are creating microservices check the user consumption volumes, its generating logs, scalability, systems to be integrated and so on. I feel for your scenario initially you can go with KAFKA bu as the throughput, consumption and other factors are scaling then gradually you can add Redis accordingly.</p>","permissions":{"edit":false,"delete":false,"__typename":"Permissions"},"publishedAt":"2020-04-15T04:54:43Z","decisionType":"giveAdvice","rootComments":[],"subjectTools":[{"id":"101231773865214260","fans":22158,"name":"Kafka","path":"/kafka","slug":"kafka","title":"Distributed, fault tolerant, high throughput pub-sub messaging system","votes":596,"stacks":19898,"imageUrl":"https://img.stackshare.io/service/1063/kazUJooF_400x400.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/kafka","followContext":null}],"upvotesCount":8,"commentsCount":0},"__typename":"StackDecisionEdge"},{"node":{"id":"104523613677586531","link":null,"user":{"id":"103805050237660863","path":"/robkraft1349","title":null,"imageUrl":"https://img.stackshare.io/user/435447/default_e3c73fcbb721e6d735e60788ec48da7ed3a0c148.jpg","username":"robkraft1349","__typename":"User","companyName":null,"displayName":"Rob Kraft"},"draft":false,"topics":[],"company":null,"flagged":false,"private":false,"toTools":[],"upvoted":false,"publicId":"104523613677586531","services":[],"createdAt":"2020-07-16T12:49:33Z","fromTools":[],"viewCount":574558,"__typename":"StackDecision","bookmarked":false,"rawContent":"I first recommend that you choose Angular over AngularJS if you are starting something new. AngularJs is no longer getting enhancements, but perhaps you meant Angular. Regarding microservices, I recommend considering microservices when you have different development teams for each service that may want to use different programming languages and backend data stores. If it is all the same team, same code language, and same data store I would not use microservices. I might use a message queue, in which case RabbitMQ is a good one. But you may also be able to simply write your own in which you write a record in a table in MSSQL and one of your services reads the record from the table and processes it. The most challenging part of doing it yourself is writing a service that does a good job of reading the queue without reading the same message multiple times or missing a message; and that is where RabbitMQ can help.","htmlContent":"<p>I first recommend that you choose Angular over AngularJS if you are starting something new. AngularJs is no longer getting enhancements, but perhaps you meant Angular. Regarding microservices, I recommend considering microservices when you have different development teams for each service that may want to use different programming languages and backend data stores. If it is all the same team, same code language, and same data store I would not use microservices. I might use a message queue, in which case RabbitMQ is a good one. But you may also be able to simply write your own in which you write a record in a table in MSSQL and one of your services reads the record from the table and processes it. The most challenging part of doing it yourself is writing a service that does a good job of reading the queue without reading the same message multiple times or missing a message; and that is where RabbitMQ can help.</p>","permissions":{"edit":false,"delete":false,"__typename":"Permissions"},"publishedAt":"2020-07-16T12:49:33Z","decisionType":"giveAdvice","rootComments":[],"subjectTools":[{"id":"101231775174055327","fans":4354,"name":"Angular","path":"/angular","slug":"angular","title":"A platform for building mobile and desktop web applications","votes":454,"stacks":1504,"imageUrl":"https://img.stackshare.io/service/3745/cb8U-gL6_400x400.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/angular","followContext":null}],"upvotesCount":4,"commentsCount":0},"__typename":"StackDecisionEdge"},{"node":{"id":"104103594475363521","link":null,"user":{"id":"104041361633391591","path":"/amitmormail7948","title":"Software Architect","imageUrl":"https://img.stackshare.io/user/534688/default_cdbeb166bdcccf04290a2eed94b79de863fd45b0.jpg","username":"amitmormail7948","__typename":"User","companyName":"Payoneer","displayName":"Amit Mor"},"draft":false,"topics":[],"company":null,"flagged":false,"private":false,"toTools":[],"upvoted":false,"publicId":"104103594475363521","services":[],"createdAt":"2020-05-03T08:33:08Z","fromTools":[],"viewCount":576933,"__typename":"StackDecision","bookmarked":false,"rawContent":"I think something is missing here and you should consider answering it to yourself. You are building a couple of services. Why are you considering event-sourcing architecture using Message Brokers such as the above? Won't a simple REST service based arch suffice? Read about CQRS and the problems it entails (state vs command impedance for example). Do you need Pub/Sub or Push/Pull? Is queuing of messages enough or would you need querying or filtering of messages before consumption? Also, someone would have to manage these brokers (unless using managed, cloud provider based solution), automate their deployment, someone would need to take care of backups, clustering if needed, disaster recovery, etc. \nI have a good past experience in terms of manageability/devops of the above options with Kafka and Redis, not so much with RabbitMQ. Both are very performant. But also note that Redis is not a pure message broker (at time of writing) but more of a general purpose in-memory key-value store. Kafka nowadays is much more than a distributed message broker. \nLong story short. In my taste, you should go with a minialistic approach and try to avoid either of them if you can, especially if your architecture does not fall nicely into event sourcing. If not I'd examine Kafka. If you need more capabilities than I'd consider Redis and use it for all sorts of other things such as a cache. ","htmlContent":"<p>I think something is missing here and you should consider answering it to yourself. You are building a couple of services. Why are you considering event-sourcing architecture using Message Brokers such as the above? Won't a simple REST service based arch suffice? Read about CQRS and the problems it entails (state vs command impedance for example). Do you need Pub/Sub or Push/Pull? Is queuing of messages enough or would you need querying or filtering of messages before consumption? Also, someone would have to manage these brokers (unless using managed, cloud provider based solution), automate their deployment, someone would need to take care of backups, clustering if needed, disaster recovery, etc. \nI have a good past experience in terms of manageability/devops of the above options with Kafka and Redis, not so much with RabbitMQ. Both are very performant. But also note that Redis is not a pure message broker (at time of writing) but more of a general purpose in-memory key-value store. Kafka nowadays is much more than a distributed message broker. \nLong story short. In my taste, you should go with a minialistic approach and try to avoid either of them if you can, especially if your architecture does not fall nicely into event sourcing. If not I'd examine Kafka. If you need more capabilities than I'd consider Redis and use it for all sorts of other things such as a cache. </p>","permissions":{"edit":false,"delete":false,"__typename":"Permissions"},"publishedAt":"2020-05-03T08:33:08Z","decisionType":"giveAdvice","rootComments":[],"subjectTools":[{"id":"101231773865214260","fans":22158,"name":"Kafka","path":"/kafka","slug":"kafka","title":"Distributed, fault tolerant, high throughput pub-sub messaging system","votes":596,"stacks":19898,"imageUrl":"https://img.stackshare.io/service/1063/kazUJooF_400x400.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/kafka","followContext":null}],"upvotesCount":3,"commentsCount":0},"__typename":"StackDecisionEdge"},{"node":{"id":"104455277634556304","link":null,"user":{"id":"101232131263990863","path":"/tehsphinx","title":null,"imageUrl":"https://img.stackshare.io/user/273752/default_dc9ae12f1fb34afd333022c1dc465608b3041cfd.png","username":"tehsphinx","__typename":"User","companyName":null,"displayName":"Gabriel Nelle"},"draft":false,"topics":[],"company":null,"flagged":false,"private":false,"toTools":[],"upvoted":false,"publicId":"104455277634556304","services":[],"createdAt":"2020-07-04T11:10:47Z","fromTools":[],"viewCount":578281,"__typename":"StackDecision","bookmarked":false,"rawContent":"We found that the CNCF landscape is a good advisor when working going into the cloud / microservices space: https://landscape.cncf.io/fullscreen=yes. When choosing a technology one important criteria to me is if it is cloud native or not. Neither Redis, RabbitMQ nor Kafka is cloud native. The try to adapt but will be replaced eventually with technologies that are cloud native.\n\nWe have gone with NATS and have never looked back. We haven't spend a single minute on server maintainance in the last year and the setup of a cluster is way too easy. With the new features NATS incorporates now (and the ones still on the roadmap) it is already and will be sooo much mure than Redis, RabbitMQ and Kafka are. It can replace service discovery, load balancing, global multiclusters and failover, etc, etc.\n\nYour thought might be: But I don't need all of that! Well, at the same time it is much more leightweight than Redis, RabbitMQ and especially Kafka.","htmlContent":"<p>We found that the CNCF landscape is a good advisor when working going into the cloud / microservices space: <a href=\"https://landscape.cncf.io/fullscreen=yes\" rel=\"nofollow noopener\" target=\"_blank\">https://landscape.cncf.io/fullscreen=yes</a>. When choosing a technology one important criteria to me is if it is cloud native or not. Neither Redis, RabbitMQ nor Kafka is cloud native. The try to adapt but will be replaced eventually with technologies that are cloud native.</p>\n\n<p>We have gone with NATS and have never looked back. We haven't spend a single minute on server maintainance in the last year and the setup of a cluster is way too easy. With the new features NATS incorporates now (and the ones still on the roadmap) it is already and will be sooo much mure than Redis, RabbitMQ and Kafka are. It can replace service discovery, load balancing, global multiclusters and failover, etc, etc.</p>\n\n<p>Your thought might be: But I don't need all of that! Well, at the same time it is much more leightweight than Redis, RabbitMQ and especially Kafka.</p>","permissions":{"edit":false,"delete":false,"__typename":"Permissions"},"publishedAt":"2020-07-04T11:10:47Z","decisionType":"giveAdvice","rootComments":[],"subjectTools":[{"id":"101231774269517269","fans":525,"name":"NATS","path":"/nats","slug":"nats","title":"Lightweight publish-subscribe & distributed queueing messaging system","votes":59,"stacks":306,"imageUrl":"https://img.stackshare.io/service/2066/nats-icon-color.png","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/nats","followContext":null}],"upvotesCount":3,"commentsCount":0},"__typename":"StackDecisionEdge"}],"pageInfo":{"endCursor":"NA","__typename":"PageInfo","hasNextPage":false},"__typename":"StackDecisionConnection"},"company":null,"private":false,"toTools":[],"publicId":"103984675742758604","services":[{"name":"Kafka","imageUrl":"https://img.stackshare.io/service/1063/kazUJooF_400x400.jpg","thumbUrl":"https://img.stackshare.io/service/1063/thumb_kazUJooF_400x400.jpg","__typename":"Tool"},{"name":"Redis","imageUrl":"https://img.stackshare.io/service/1031/default_cbce472cd134adc6688572f999e9122b9657d4ba.png","thumbUrl":"https://img.stackshare.io/service/1031/thumb_cbce472cd134adc6688572f999e9122b9657d4ba.png","__typename":"Tool"},{"name":"RabbitMQ","imageUrl":"https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg","thumbUrl":"https://img.stackshare.io/service/1061/thumb_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg","__typename":"Tool"},{"name":"MSSQL","imageUrl":"https://img.stackshare.io/service/2445/ZKsJsucq_400x400.jpg","thumbUrl":"https://img.stackshare.io/service/2445/thumb_ZKsJsucq_400x400.jpg","__typename":"Tool"},{"name":"ASP.NET Core","imageUrl":"https://img.stackshare.io/service/11331/asp.net-core.png","thumbUrl":"https://img.stackshare.io/service/11331/thumb_asp.net-core.png","__typename":"Tool"},{"name":"AngularJS","imageUrl":"https://img.stackshare.io/service/1019/square.png","thumbUrl":"https://img.stackshare.io/service/1019/thumb_square.png","__typename":"Tool"}],"fromTools":[],"viewCount":654903,"__typename":"StackDecision","htmlContent":"<p>We are going to develop a microservices-based application. It consists of <span class=\"tool\">AngularJS</span>, <span class=\"tool\">ASP.NET Core</span>, and <span class=\"tool\">MSSQL</span>.</p>\r\n\r\n<p>We have 3 types of microservices.\r\nEmailservice,\r\nFilemanagementservice,\r\nFilevalidationservice</p>\r\n\r\n<p>I am a beginner in microservices. But I have read about <span class=\"tool\">RabbitMQ</span>, but come to know that there are <span class=\"tool\">Redis</span> and <span class=\"tool\">Kafka</span> also in the market. So, I want to know which is best.</p>","publishedAt":"2020-04-12T08:30:00Z","decisionType":"getAdvice","subjectTools":[{"id":"101231773865214260","fans":22158,"name":"Kafka","path":"/kafka","slug":"kafka","title":"Distributed, fault tolerant, high throughput pub-sub messaging system","votes":596,"stacks":19898,"imageUrl":"https://img.stackshare.io/service/1063/kazUJooF_400x400.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/kafka","followContext":null},{"id":"101231773864300849","fans":19257,"name":"RabbitMQ","path":"/rabbitmq","slug":"rabbitmq","title":"Open source multiprotocol messaging broker","votes":522,"stacks":18396,"imageUrl":"https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/rabbitmq","followContext":null},{"id":"101231773854768982","fans":47814,"name":"Redis","path":"/redis","slug":"redis","title":"Open source (BSD licensed), in-memory data structure store","votes":3866,"stacks":52292,"imageUrl":"https://img.stackshare.io/service/1031/default_cbce472cd134adc6688572f999e9122b9657d4ba.png","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/redis","followContext":null}],"upvotesCount":9},"__typename":"StackDecisionEdge"},{"node":{"id":"103736739744008380","user":{"id":"103736589999910974","title":"","imageUrl":"https://img.stackshare.io/user/411637/default_47a8a79d20cb91874d8b7983a6a82d391ff50284.jpg","thumbUrl":"https://img.stackshare.io/user/411637/thumb_47a8a79d20cb91874d8b7983a6a82d391ff50284.jpg","username":"ishfaqer2528","__typename":"User","companyName":"","displayName":"Ishfaq haider"},"stack":null,"topics":[],"answers":{"count":4,"edges":[{"node":{"id":"103743340677504400","link":{"url":"https://tarunbatra.com/blog/comparison/How-to-choose-between-Kafka-and-RabbitMQ","title":"How to choose between Kafka and RabbitMQ","imageUrl":"https://tarunbatra.com/blog/comparison/How-to-choose-between-Kafka-and-RabbitMQ/meta/favicon-192x192.png","__typename":"Link"},"user":{"id":"103149280081107721","path":"/tarunbatra","title":"Senior Software Developer","imageUrl":"https://img.stackshare.io/user/318924/default_e8f12268978a5d40e46dde938e339c9dcf189329.jpeg","username":"tarunbatra","__typename":"User","companyName":"Okta","displayName":"Tarun Batra"},"draft":false,"topics":[],"company":null,"flagged":false,"private":false,"toTools":[],"upvoted":false,"publicId":"103743340677504400","services":[],"createdAt":"2020-02-29T17:35:52Z","fromTools":[],"viewCount":529298,"__typename":"StackDecision","bookmarked":false,"rawContent":"RabbitMQ is great for queuing and retrying. You can send the requests to your backend which will further queue these requests in RabbitMQ (or Kafka, too). The consumer on the other end can take care of processing . For a detailed analysis, check this blog about [choosing between Kafka and RabbitMQ](https://tarunbatra.com/blog/comparison/How-to-choose-between-Kafka-and-RabbitMQ/).","htmlContent":"<p>RabbitMQ is great for queuing and retrying. You can send the requests to your backend which will further queue these requests in RabbitMQ (or Kafka, too). The consumer on the other end can take care of processing . For a detailed analysis, check this blog about <a href=\"https://tarunbatra.com/blog/comparison/How-to-choose-between-Kafka-and-RabbitMQ/\" rel=\"nofollow noopener\" target=\"_blank\">choosing between Kafka and RabbitMQ</a>.</p>","permissions":{"edit":false,"delete":false,"__typename":"Permissions"},"publishedAt":"2020-02-29T17:35:51Z","decisionType":"giveAdvice","rootComments":[],"subjectTools":[{"id":"101231773864300849","fans":19257,"name":"RabbitMQ","path":"/rabbitmq","slug":"rabbitmq","title":"Open source multiprotocol messaging broker","votes":522,"stacks":18396,"imageUrl":"https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/rabbitmq","followContext":null}],"upvotesCount":7,"commentsCount":0},"__typename":"StackDecisionEdge"},{"node":{"id":"103738714930841306","link":null,"user":{"id":"101232123685176293","path":"/trydalch","title":"Software Engineer","imageUrl":"https://img.stackshare.io/user/258926/default_8c614c79011e9d37d5c4f10d401d1cdbc0159557.png","username":"trydalch","__typename":"User","companyName":"InsideSales.com","displayName":"Trevor Rydalch"},"draft":false,"topics":[],"company":null,"flagged":false,"private":false,"toTools":[],"upvoted":false,"publicId":"103738714930841306","services":[],"createdAt":"2020-02-28T21:59:28Z","fromTools":[],"viewCount":529181,"__typename":"StackDecision","bookmarked":false,"rawContent":"Well, first off, it's good practice to do as little non-UI work on the foreground thread as possible, regardless of whether the requests take a long time. You don't want the UI thread blocked.\n\nThis sounds like a good use case for RabbitMQ. Primarily because you don't need each message processed by more than one consumer. If you wanted to process a single message more than once (say for different purposes), then Apache Kafka would be a much better fit as you can have multiple consumer groups consuming from the same topics independently.\n\nHave your API publish messages containing the data necessary for the third-party request to a Rabbit queue and have consumers reading off there. If it fails, you can either retry immediately, or publish to a deadletter queue where you can reprocess them whenever you want (shovel them back into the regular queue).","htmlContent":"<p>Well, first off, it's good practice to do as little non-UI work on the foreground thread as possible, regardless of whether the requests take a long time. You don't want the UI thread blocked.</p>\n\n<p>This sounds like a good use case for RabbitMQ. Primarily because you don't need each message processed by more than one consumer. If you wanted to process a single message more than once (say for different purposes), then Apache Kafka would be a much better fit as you can have multiple consumer groups consuming from the same topics independently.</p>\n\n<p>Have your API publish messages containing the data necessary for the third-party request to a Rabbit queue and have consumers reading off there. If it fails, you can either retry immediately, or publish to a deadletter queue where you can reprocess them whenever you want (shovel them back into the regular queue).</p>","permissions":{"edit":false,"delete":false,"__typename":"Permissions"},"publishedAt":"2020-02-28T21:59:28Z","decisionType":"giveAdvice","rootComments":[],"subjectTools":[{"id":"101231773864300849","fans":19257,"name":"RabbitMQ","path":"/rabbitmq","slug":"rabbitmq","title":"Open source multiprotocol messaging broker","votes":522,"stacks":18396,"imageUrl":"https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/rabbitmq","followContext":null}],"upvotesCount":6,"commentsCount":0},"__typename":"StackDecisionEdge"},{"node":{"id":"103738987370372088","link":null,"user":{"id":"101232095979145525","path":"/freeart","title":null,"imageUrl":"https://img.stackshare.io/user/204794/default_698241f9aceafe92402497b2cf76353cf835ca78.jpeg","username":"freeart","__typename":"User","companyName":null,"displayName":"Paul Nekrasov"},"draft":false,"topics":[],"company":null,"flagged":false,"private":false,"toTools":[],"upvoted":false,"publicId":"103738987370372088","services":[],"createdAt":"2020-02-28T23:08:45Z","fromTools":[],"viewCount":528575,"__typename":"StackDecision","bookmarked":false,"rawContent":"In my opinion RabbitMQ fits better in your case because you don’t have order in queue. You can process your messages in any order. You don’t need to store the data what you sent. Kafka is a persistent storage like the blockchain. RabbitMQ is a message broker. Kafka is not a good solution for the system with confirmations of the messages delivery.","htmlContent":"<p>In my opinion RabbitMQ fits better in your case because you don’t have order in queue. You can process your messages in any order. You don’t need to store the data what you sent. Kafka is a persistent storage like the blockchain. RabbitMQ is a message broker. Kafka is not a good solution for the system with confirmations of the messages delivery.</p>","permissions":{"edit":false,"delete":false,"__typename":"Permissions"},"publishedAt":"2020-02-28T23:08:45Z","decisionType":"giveAdvice","rootComments":[],"subjectTools":[{"id":"101231773864300849","fans":19257,"name":"RabbitMQ","path":"/rabbitmq","slug":"rabbitmq","title":"Open source multiprotocol messaging broker","votes":522,"stacks":18396,"imageUrl":"https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/rabbitmq","followContext":null}],"upvotesCount":2,"commentsCount":0},"__typename":"StackDecisionEdge"},{"node":{"id":"103739412898159481","link":null,"user":{"id":"101579197983027798","path":"/guillaumemaka","title":"Full Stack Web Developer","imageUrl":"https://img.stackshare.io/user/283032/default_1b130cc721cf54247f660d8ae34b881be947df79.jpeg","username":"guillaumemaka","__typename":"User","companyName":"","displayName":"Guillaume Maka"},"draft":false,"topics":[],"company":null,"flagged":false,"private":false,"toTools":[],"upvoted":false,"publicId":"103739412898159481","services":[],"createdAt":"2020-02-29T00:56:58Z","fromTools":[],"viewCount":528558,"__typename":"StackDecision","bookmarked":false,"rawContent":"As far as I understand, Kafka is a like a persisted event state manager where you can plugin various source of data and transform/query them as event via a stream API. Regarding your use case I will consider using RabbitMQ if your intent is to implement service inter-communication kind of thing. RabbitMQ is a good choice for one-one publisher/subscriber (or consumer) and I think you can also have multiple consumers by configuring a fanout exchange. RabbitMQ provide also message retries, message cancellation, durable queue, message requeue, message ACK.... ","htmlContent":"<p>As far as I understand, Kafka is a like a persisted event state manager where you can plugin various source of data and transform/query them as event via a stream API. Regarding your use case I will consider using RabbitMQ if your intent is to implement service inter-communication kind of thing. RabbitMQ is a good choice for one-one publisher/subscriber (or consumer) and I think you can also have multiple consumers by configuring a fanout exchange. RabbitMQ provide also message retries, message cancellation, durable queue, message requeue, message ACK.... </p>","permissions":{"edit":false,"delete":false,"__typename":"Permissions"},"publishedAt":"2020-02-29T00:56:58Z","decisionType":"giveAdvice","rootComments":[],"subjectTools":[{"id":"101231773864300849","fans":19257,"name":"RabbitMQ","path":"/rabbitmq","slug":"rabbitmq","title":"Open source multiprotocol messaging broker","votes":522,"stacks":18396,"imageUrl":"https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/rabbitmq","followContext":null}],"upvotesCount":2,"commentsCount":0},"__typename":"StackDecisionEdge"}],"pageInfo":{"endCursor":"NA","__typename":"PageInfo","hasNextPage":false},"__typename":"StackDecisionConnection"},"company":null,"private":false,"toTools":[],"publicId":"103736739744008380","services":[],"fromTools":[],"viewCount":532667,"__typename":"StackDecision","htmlContent":"<p>Our backend application is sending some external messages to a third party application at the end of each backend (CRUD) API call (from UI) and these external messages take too much extra time (message building, processing, then sent to the third party and log success/failure), UI application has no concern to these extra third party messages.</p>\n\n<p>So currently we are sending these third party messages by creating a new child thread at end of each REST API call so UI application doesn't wait for these extra third party API calls.</p>\n\n<p>I want to integrate Apache Kafka for these extra third party API calls, so I can also retry on failover third party API calls in a queue(currently third party messages are sending from multiple threads at the same time which uses too much processing and resources) and logging, etc.</p>\n\n<p>Question 1: Is this a use case of a message broker?</p>\n\n<p>Question 2: If it is then Kafka vs RabitMQ which is the better?</p>","publishedAt":"2020-02-28T13:37:09Z","decisionType":"getAdvice","subjectTools":[{"id":"101231773865214260","fans":22158,"name":"Kafka","path":"/kafka","slug":"kafka","title":"Distributed, fault tolerant, high throughput pub-sub messaging system","votes":596,"stacks":19898,"imageUrl":"https://img.stackshare.io/service/1063/kazUJooF_400x400.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/kafka","followContext":null},{"id":"101231773864300849","fans":19257,"name":"RabbitMQ","path":"/rabbitmq","slug":"rabbitmq","title":"Open source multiprotocol messaging broker","votes":522,"stacks":18396,"imageUrl":"https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/rabbitmq","followContext":null}],"upvotesCount":4},"__typename":"StackDecisionEdge"},{"node":{"id":"103480172803629203","user":{"id":"103174099634168248","title":"","imageUrl":"https://img.stackshare.io/user/319822/default_50e733401eb0a74d748ec884788e8794529e34c6.png","thumbUrl":"https://img.stackshare.io/user/319822/thumb_50e733401eb0a74d748ec884788e8794529e34c6.png","username":"oitan","__typename":"User","companyName":"","displayName":"Alikhan Oitan"},"stack":null,"topics":[],"answers":{"count":3,"edges":[{"node":{"id":"103523246939307013","link":null,"user":{"id":"101232096405886387","path":"/jmquarck","title":"Senior software architect","imageUrl":"https://img.stackshare.io/user/205640/default_5ca5d2b02eb6b67d936423becf4757e6fd43e172.jpg","username":"jmquarck","__typename":"User","companyName":"Bootloader","displayName":"Jordi Martínez"},"draft":false,"topics":[],"company":null,"flagged":false,"private":false,"toTools":[],"upvoted":false,"publicId":"103523246939307013","services":[],"createdAt":"2020-01-21T20:43:08Z","fromTools":[],"viewCount":479237,"__typename":"StackDecision","bookmarked":false,"rawContent":"For your use case, the tool that fits more is definitely Kafka. RabbitMQ was not invented to handle data streams, but messages. Plenty of them, of course, but individual messages. Redis is an in-memory database, which is what makes it so fast. Redis recently included features to handle data stream, but it cannot best Kafka on this, or at least not yet. Kafka is not also super fast, it also provides lots of features to help create software to handle those streams. ","htmlContent":"<p>For your use case, the tool that fits more is definitely Kafka. RabbitMQ was not invented to handle data streams, but messages. Plenty of them, of course, but individual messages. Redis is an in-memory database, which is what makes it so fast. Redis recently included features to handle data stream, but it cannot best Kafka on this, or at least not yet. Kafka is not also super fast, it also provides lots of features to help create software to handle those streams. </p>","permissions":{"edit":false,"delete":false,"__typename":"Permissions"},"publishedAt":"2020-01-21T20:43:08Z","decisionType":"giveAdvice","rootComments":[{"id":"103523254588614641","user":{"id":"101232096405886387","path":"/jmquarck","imageUrl":"https://img.stackshare.io/user/205640/default_5ca5d2b02eb6b67d936423becf4757e6fd43e172.jpg","__typename":"User","displayName":"Jordi Martínez"},"content":"Sorry for the typos, I meant “, but it cannot beat Kafka on this, or at least not yet. Kafka is also super fast, and it also ...”","flagged":false,"replies":[],"upvoted":false,"parentId":null,"postedAt":"2020-01-21T20:45:04Z","__typename":"Comment","upvotesCount":0},{"id":"103837634190038714","user":{"id":"103174099634168248","path":"/oitan","imageUrl":"https://img.stackshare.io/user/319822/default_50e733401eb0a74d748ec884788e8794529e34c6.png","__typename":"User","displayName":"Alikhan Oitan"},"content":"Thank you very much for the clear explanation! I will definitely note the recommendation!","flagged":false,"replies":[],"upvoted":false,"parentId":null,"postedAt":"2020-03-17T09:15:56Z","__typename":"Comment","upvotesCount":0}],"subjectTools":[{"id":"101231773865214260","fans":22158,"name":"Kafka","path":"/kafka","slug":"kafka","title":"Distributed, fault tolerant, high throughput pub-sub messaging system","votes":596,"stacks":19898,"imageUrl":"https://img.stackshare.io/service/1063/kazUJooF_400x400.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/kafka","followContext":null}],"upvotesCount":3,"commentsCount":2},"__typename":"StackDecisionEdge"},{"node":{"id":"103520150547916678","link":null,"user":{"id":"101232071476462457","path":"/snopoke","title":null,"imageUrl":"https://img.stackshare.io/user/159148/default_5e60dea89a323bcb42ab16629853251ad8f6617e.jpeg","username":"snopoke","__typename":"User","companyName":null,"displayName":"Simon Kelly"},"draft":false,"topics":[],"company":null,"flagged":false,"private":false,"toTools":[],"upvoted":false,"publicId":"103520150547916678","services":[],"createdAt":"2020-01-21T07:35:40Z","fromTools":[],"viewCount":478788,"__typename":"StackDecision","bookmarked":false,"rawContent":"For this kind of use case I would recommend either RabbitMQ or Kafka depending on the needs for scaling, redundancy and how you want to design it.\n\nKafka's true value comes into play when you need to distribute the streaming load over lot's of resources. If you were passing the video frames directly into the queue then you'd probably want to go with Kafka however if you can just pass a pointer to the frames then RabbitMQ should be fine and will be much simpler to run.\n\nBear in mind too that Kafka is a persistent log, not just a message bus so any data you feed into it is kept available until it expires (which is configurable). This can be useful if you have multiple clients reading from the queue with their own lifecycle but in your case it doesn't sound like that would be necessary. You could also use a RabbitMQ fanout exchange if you need that in the future.","htmlContent":"<p>For this kind of use case I would recommend either RabbitMQ or Kafka depending on the needs for scaling, redundancy and how you want to design it.</p>\n\n<p>Kafka's true value comes into play when you need to distribute the streaming load over lot's of resources. If you were passing the video frames directly into the queue then you'd probably want to go with Kafka however if you can just pass a pointer to the frames then RabbitMQ should be fine and will be much simpler to run.</p>\n\n<p>Bear in mind too that Kafka is a persistent log, not just a message bus so any data you feed into it is kept available until it expires (which is configurable). This can be useful if you have multiple clients reading from the queue with their own lifecycle but in your case it doesn't sound like that would be necessary. You could also use a RabbitMQ fanout exchange if you need that in the future.</p>","permissions":{"edit":false,"delete":false,"__typename":"Permissions"},"publishedAt":"2020-01-21T07:35:40Z","decisionType":"giveAdvice","rootComments":[{"id":"103837647145747777","user":{"id":"103174099634168248","path":"/oitan","imageUrl":"https://img.stackshare.io/user/319822/default_50e733401eb0a74d748ec884788e8794529e34c6.png","__typename":"User","displayName":"Alikhan Oitan"},"content":"Thank you very much for your recommendation! I learned good points from it!","flagged":false,"replies":[],"upvoted":false,"parentId":null,"postedAt":"2020-03-17T09:19:14Z","__typename":"Comment","upvotesCount":0}],"subjectTools":[{"id":"101231773864300849","fans":19257,"name":"RabbitMQ","path":"/rabbitmq","slug":"rabbitmq","title":"Open source multiprotocol messaging broker","votes":522,"stacks":18396,"imageUrl":"https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/rabbitmq","followContext":null}],"upvotesCount":2,"commentsCount":1},"__typename":"StackDecisionEdge"},{"node":{"id":"103517903319420323","link":null,"user":{"id":"101913113248205216","path":"/teodeleanu","title":"Developer","imageUrl":"https://img.stackshare.io/user/290976/default_fbae5888a52cf95d6204656969ccce478240e717.jpeg","username":"teodeleanu","__typename":"User","companyName":"","displayName":"Teo Deleanu"},"draft":false,"topics":[],"company":null,"flagged":false,"private":false,"toTools":[],"upvoted":false,"publicId":"103517903319420323","services":[],"createdAt":"2020-01-20T22:04:10Z","fromTools":[],"viewCount":478879,"__typename":"StackDecision","bookmarked":false,"rawContent":"I've used all of them and Kafka is hard to set up and maintain. Mostly is a Java dinosaur that you can set up and. I've used it with Storm but that is another big dinosaur.\nRedis is mostly for caching. The queue mechanism is not very scalable for multiple processors.\nDepending on the speed you need to implement on the reliability I would use RabbitMQ.\nYou can store the frames(if they are too big) somewhere else and just have a link to them. \nMoving data through any of these will increase cost of transportation.\nWith Rabbit, you can always have multiple consumers and check for redundancy.\nHope it clears out your thoughts!\n","htmlContent":"<p>I've used all of them and Kafka is hard to set up and maintain. Mostly is a Java dinosaur that you can set up and. I've used it with Storm but that is another big dinosaur.\nRedis is mostly for caching. The queue mechanism is not very scalable for multiple processors.\nDepending on the speed you need to implement on the reliability I would use RabbitMQ.\nYou can store the frames(if they are too big) somewhere else and just have a link to them. \nMoving data through any of these will increase cost of transportation.\nWith Rabbit, you can always have multiple consumers and check for redundancy.\nHope it clears out your thoughts!</p>","permissions":{"edit":false,"delete":false,"__typename":"Permissions"},"publishedAt":"2020-01-20T22:04:10Z","decisionType":"giveAdvice","rootComments":[{"id":"103837637655851086","user":{"id":"103174099634168248","path":"/oitan","imageUrl":"https://img.stackshare.io/user/319822/default_50e733401eb0a74d748ec884788e8794529e34c6.png","__typename":"User","displayName":"Alikhan Oitan"},"content":"Thanks a lot for the recommendation! I will to note that!","flagged":false,"replies":[],"upvoted":false,"parentId":null,"postedAt":"2020-03-17T09:16:49Z","__typename":"Comment","upvotesCount":0}],"subjectTools":[{"id":"101231773864300849","fans":19257,"name":"RabbitMQ","path":"/rabbitmq","slug":"rabbitmq","title":"Open source multiprotocol messaging broker","votes":522,"stacks":18396,"imageUrl":"https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/rabbitmq","followContext":null}],"upvotesCount":2,"commentsCount":1},"__typename":"StackDecisionEdge"}],"pageInfo":{"endCursor":"Mw","__typename":"PageInfo","hasNextPage":false},"__typename":"StackDecisionConnection"},"company":null,"private":false,"toTools":[],"publicId":"103480172803629203","services":[],"fromTools":[],"viewCount":479476,"__typename":"StackDecision","htmlContent":"<p>Hello!\n[Client sends live video frames -&gt; Server computes and responds the result]\nWeb clients send video frames from their webcam then on the back we need to run them through some algorithm and send the result back as a response. Since everything will need to work in a live mode, we want something fast and also suitable for our case (as everyone needs). Currently, we are considering RabbitMQ for the purpose, but recently I have noticed that there is Redis and Kafka too. Could you please help us choose among them or anything more suitable beyond these guys.\nI think something similar to our product would be people using their webcam to get Snapchat masks on their faces, and the calculated face points are responded on from the server, then the client-side draw the mask on the user's face. I hope this helps.\nThank you!</p>","publishedAt":"2020-01-14T06:08:48Z","decisionType":"getAdvice","subjectTools":[{"id":"101231773865214260","fans":22158,"name":"Kafka","path":"/kafka","slug":"kafka","title":"Distributed, fault tolerant, high throughput pub-sub messaging system","votes":596,"stacks":19898,"imageUrl":"https://img.stackshare.io/service/1063/kazUJooF_400x400.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/kafka","followContext":null},{"id":"101231773864300849","fans":19257,"name":"RabbitMQ","path":"/rabbitmq","slug":"rabbitmq","title":"Open source multiprotocol messaging broker","votes":522,"stacks":18396,"imageUrl":"https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/rabbitmq","followContext":null},{"id":"101231773854768982","fans":47814,"name":"Redis","path":"/redis","slug":"redis","title":"Open source (BSD licensed), in-memory data structure store","votes":3866,"stacks":52292,"imageUrl":"https://img.stackshare.io/service/1031/default_cbce472cd134adc6688572f999e9122b9657d4ba.png","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/redis","followContext":null}],"upvotesCount":3},"__typename":"StackDecisionEdge"}],"pageInfo":{"endCursor":"OQ","__typename":"PageInfo","hasNextPage":false},"__typename":"StackDecisionConnection"}},"privateStackDecisionsGetAdvice({\"first\":3})":{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).privateStackDecisionsGetAdvice({\"first\":3})","typename":"StackDecisionConnection"},"cachedStackDecisions":{"type":"json","json":{"count":2,"edges":[{"node":{"id":"105740869647880096","user":{"id":"105582170996797394","title":"GO/C developer","imageUrl":"https://img.stackshare.io/user/852897/default_f849b8f82aa33a93afaf7cad8c322817c4e48a8e.jpg","thumbUrl":"https://img.stackshare.io/user/852897/thumb_f849b8f82aa33a93afaf7cad8c322817c4e48a8e.jpg","username":"ducklingsoftware","__typename":"User","companyName":null,"displayName":"Kirill Mikhailov"},"stack":{"id":"105645572548407698","name":"Duckling Sales","path":"/duckling-sales/duckling-sales","owner":{"id":"105645565068484055","name":"Duckling Sales","slug":"duckling-sales","imageUrl":"https://img.stackshare.io/company/167358/default_86ad5cebe22e90de8fa56064d885126a03376cc8.png","__typename":"Company"},"private":false,"imageUrl":"https://img.stackshare.io/stack/803761/default_998321e1565807c8bdc85d2b7eb977af94e1dbdb.png","__typename":"Stack","identifier":"duckling-sales/duckling-sales"},"topics":[],"company":{"name":"Duckling Sales","path":"/companies/duckling-sales","features":[],"imageUrl":"https://img.stackshare.io/company/167358/default_86ad5cebe22e90de8fa56064d885126a03376cc8.png","thumbUrl":"https://img.stackshare.io/company/167358/thumb_86ad5cebe22e90de8fa56064d885126a03376cc8.png","__typename":"Company"},"private":false,"toTools":[{"id":"101231773864300849","fans":19257,"name":"RabbitMQ","path":"/rabbitmq","slug":"rabbitmq","title":"Open source multiprotocol messaging broker","votes":522,"stacks":18396,"imageUrl":"https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/rabbitmq","followContext":null}],"publicId":"105740869647880096","services":[],"fromTools":[{"id":"101231776571721374","fans":490,"name":"Google Cloud Pub/Sub","path":"/google-cloud-pubsub","slug":"google-cloud-pubsub","title":"Global service for real-time and reliable messaging and streaming data","votes":13,"stacks":474,"imageUrl":"https://img.stackshare.io/service/6253/pubsub.png","verified":true,"following":false,"__typename":"Tool","canonicalUrl":"/google-cloud-pubsub","followContext":null},{"id":"101231773865214260","fans":22158,"name":"Kafka","path":"/kafka","slug":"kafka","title":"Distributed, fault tolerant, high throughput pub-sub messaging system","votes":596,"stacks":19898,"imageUrl":"https://img.stackshare.io/service/1063/kazUJooF_400x400.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/kafka","followContext":null}],"viewCount":186016,"__typename":"StackDecision","htmlContent":"<p>Maybe not an obvious comparison with Kafka, since Kafka is pretty different from rabbitmq. But for small service, Rabbit as a pubsub platform is super easy to use and pretty powerful.\nKafka as an alternative was the original choice, but its really a kind of overkill for a small-medium service. Especially if you are not planning to use k8s, since pure docker deployment can be a pain because of networking setup.\nGoogle PubSub was another alternative, its actually pretty cheap, but I never tested it since Rabbit was matching really good for mailing/notification services.</p>","publishedAt":"2021-02-16T12:13:44Z","decisionType":"tool","subjectTools":[{"id":"101231773864300849","fans":19257,"name":"RabbitMQ","path":"/rabbitmq","slug":"rabbitmq","title":"Open source multiprotocol messaging broker","votes":522,"stacks":18396,"imageUrl":"https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/rabbitmq","followContext":null},{"id":"101231776571721374","fans":490,"name":"Google Cloud Pub/Sub","path":"/google-cloud-pubsub","slug":"google-cloud-pubsub","title":"Global service for real-time and reliable messaging and streaming data","votes":13,"stacks":474,"imageUrl":"https://img.stackshare.io/service/6253/pubsub.png","verified":true,"following":false,"__typename":"Tool","canonicalUrl":"/google-cloud-pubsub","followContext":null},{"id":"101231773865214260","fans":22158,"name":"Kafka","path":"/kafka","slug":"kafka","title":"Distributed, fault tolerant, high throughput pub-sub messaging system","votes":596,"stacks":19898,"imageUrl":"https://img.stackshare.io/service/1063/kazUJooF_400x400.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/kafka","followContext":null}],"upvotesCount":7},"__typename":"StackDecisionEdge"},{"node":{"id":"103749461332940873","user":{"id":"103749417488329731","title":"DevOps Engineer","imageUrl":"https://img.stackshare.io/user/414482/default_2c6fa1c24e56f0e7bc02df631ede9b177e1194e4.png","thumbUrl":"https://img.stackshare.io/user/414482/thumb_2c6fa1c24e56f0e7bc02df631ede9b177e1194e4.png","username":"mickaelallielrookout","__typename":"User","companyName":"Rookout","displayName":"Mickael Alliel"},"stack":null,"topics":[],"company":{"name":"Rookout","path":"/companies/rookout","features":[],"imageUrl":"https://img.stackshare.io/company/111287/default_126d6e465d08865eab50d86a5c4d30773eebaf8d.png","thumbUrl":"https://img.stackshare.io/company/111287/thumb_126d6e465d08865eab50d86a5c4d30773eebaf8d.png","__typename":"Company"},"private":false,"toTools":[{"id":"101231776571721374","fans":490,"name":"Google Cloud Pub/Sub","path":"/google-cloud-pubsub","slug":"google-cloud-pubsub","title":"Global service for real-time and reliable messaging and streaming data","votes":13,"stacks":474,"imageUrl":"https://img.stackshare.io/service/6253/pubsub.png","verified":true,"following":false,"__typename":"Tool","canonicalUrl":"/google-cloud-pubsub","followContext":null}],"publicId":"103749461332940873","services":[],"fromTools":[{"id":"101231773583101665","fans":92,"name":"CloudAMQP","path":"/cloudamqp","slug":"cloudamqp","title":"RabbitMQ as a Service","votes":7,"stacks":58,"imageUrl":"https://img.stackshare.io/service/312/default_a6b90f9ad5d401bc501ce1197fc5c052fbc28605.jpg","verified":true,"following":false,"__typename":"Tool","canonicalUrl":"/cloudamqp","followContext":null},{"id":"101231773864300849","fans":19257,"name":"RabbitMQ","path":"/rabbitmq","slug":"rabbitmq","title":"Open source multiprotocol messaging broker","votes":522,"stacks":18396,"imageUrl":"https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/rabbitmq","followContext":null}],"viewCount":342494,"__typename":"StackDecision","htmlContent":"<p>In addition to being a lot cheaper, Google Cloud Pub/Sub allowed us to not worry about maintaining any more infrastructure that needed.</p>\r\n\r\n<p>We moved from a self-hosted RabbitMQ over to CloudAMQP and decided that since we use GCP anyway, why not try their managed PubSub?</p>\r\n\r\n<p>It is one of the better decisions that we made, and we can just focus about building more important stuff!</p>","publishedAt":"2020-03-01T19:32:00Z","decisionType":"migration","subjectTools":[{"id":"101231776571721374","fans":490,"name":"Google Cloud Pub/Sub","path":"/google-cloud-pubsub","slug":"google-cloud-pubsub","title":"Global service for real-time and reliable messaging and streaming data","votes":13,"stacks":474,"imageUrl":"https://img.stackshare.io/service/6253/pubsub.png","verified":true,"following":false,"__typename":"Tool","canonicalUrl":"/google-cloud-pubsub","followContext":null},{"id":"101231773583101665","fans":92,"name":"CloudAMQP","path":"/cloudamqp","slug":"cloudamqp","title":"RabbitMQ as a Service","votes":7,"stacks":58,"imageUrl":"https://img.stackshare.io/service/312/default_a6b90f9ad5d401bc501ce1197fc5c052fbc28605.jpg","verified":true,"following":false,"__typename":"Tool","canonicalUrl":"/cloudamqp","followContext":null},{"id":"101231773864300849","fans":19257,"name":"RabbitMQ","path":"/rabbitmq","slug":"rabbitmq","title":"Open source multiprotocol messaging broker","votes":522,"stacks":18396,"imageUrl":"https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg","verified":false,"following":false,"__typename":"Tool","canonicalUrl":"/rabbitmq","followContext":null}],"upvotesCount":4},"__typename":"StackDecisionEdge"}],"pageInfo":{"endCursor":"Mg","__typename":"PageInfo","hasNextPage":false},"__typename":"StackDecisionConnection"}},"privateStackDecisions({\"first\":5})":{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).privateStackDecisions({\"first\":5})","typename":"StackDecisionConnection"},"cachedFooterRelatedStackups":{"type":"json","json":[{"path":"/stackups/celery-vs-kafka-vs-rabbitmq","title":"Celery vs Kafka vs RabbitMQ","__typename":"Stackup"},{"path":"/stackups/kafka-vs-nsq-vs-rabbitmq","title":"Kafka vs NSQ vs RabbitMQ","__typename":"Stackup"},{"path":"/stackups/activemq-vs-amazon-sqs-vs-rabbitmq","title":"ActiveMQ vs Amazon SQS vs RabbitMQ","__typename":"Stackup"},{"path":"/stackups/amazon-sqs-vs-kafka","title":"Amazon SQS vs Kafka","__typename":"Stackup"},{"path":"/stackups/kafka-vs-rabbitmq","title":"Kafka vs RabbitMQ","__typename":"Stackup"}]},"footerTopStackups":[{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).footerTopStackups.0","typename":"Stackup"},{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).footerTopStackups.1","typename":"Stackup"},{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).footerTopStackups.2","typename":"Stackup"},{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).footerTopStackups.3","typename":"Stackup"}],"footerTrendingStackups":[{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).footerTrendingStackups.0","typename":"Stackup"},{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).footerTrendingStackups.1","typename":"Stackup"},{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).footerTrendingStackups.2","typename":"Stackup"},{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).footerTrendingStackups.3","typename":"Stackup"},{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).footerTrendingStackups.4","typename":"Stackup"}],"__typename":"Stackup","jobs({\"first\":8})":{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).jobs({\"first\":8})","typename":"JobConnection"},"featuredPosts({\"first\":8})":{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).featuredPosts({\"first\":8})","typename":"FeaturedPostConnection"}},"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).jobs":{"count":15,"__typename":"JobConnection"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).featuredPosts":{"count":14,"__typename":"FeaturedPostConnection"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).privateStackDecisionsGetAdvice({\"first\":3})":{"count":0,"pageInfo":{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).privateStackDecisionsGetAdvice({\"first\":3}).pageInfo","typename":"PageInfo"},"edges":[],"__typename":"StackDecisionConnection"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).privateStackDecisionsGetAdvice({\"first\":3}).pageInfo":{"endCursor":null,"hasNextPage":false,"__typename":"PageInfo"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).privateStackDecisions({\"first\":5})":{"count":0,"pageInfo":{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).privateStackDecisions({\"first\":5}).pageInfo","typename":"PageInfo"},"edges":[],"__typename":"StackDecisionConnection"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).privateStackDecisions({\"first\":5}).pageInfo":{"hasNextPage":false,"endCursor":null,"__typename":"PageInfo"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).footerTopStackups.0":{"title":"Bitbucket vs GitHub vs GitLab","path":"/stackups/bitbucket-vs-github-vs-gitlab","__typename":"Stackup"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).footerTopStackups.1":{"title":"Bootstrap vs Materialize","path":"/stackups/bootstrap-vs-materialize","__typename":"Stackup"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).footerTopStackups.2":{"title":"HipChat vs Mattermost vs Slack","path":"/stackups/hipchat-vs-mattermost-vs-slack","__typename":"Stackup"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).footerTopStackups.3":{"title":"Postman vs Swagger UI","path":"/stackups/postman-vs-swagger-ui","__typename":"Stackup"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).footerTrendingStackups.0":{"title":"Django vs Laravel vs Node.js","path":"/stackups/django-vs-laravel-vs-nodejs","__typename":"Stackup"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).footerTrendingStackups.1":{"title":"Bootstrap vs Foundation vs Material-UI","path":"/stackups/bootstrap-vs-foundation-vs-material-ui","__typename":"Stackup"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).footerTrendingStackups.2":{"title":"Node.js vs Spring Boot","path":"/stackups/nodejs-vs-spring-boot","__typename":"Stackup"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).footerTrendingStackups.3":{"title":"Flyway vs Liquibase","path":"/stackups/flyway-vs-liquibase","__typename":"Stackup"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).footerTrendingStackups.4":{"title":"AWS CodeCommit vs Bitbucket vs GitHub","path":"/stackups/aws-codecommit-vs-bitbucket-vs-github","__typename":"Stackup"},"Job:109313311154479772":{"name":"PRINCIPAL SOFTWARE ENGINEER","id":"109313311154479772","angellistJobUrl":"https://careers.cbre.com/careers/JobDetail/PRINCIPAL-SOFTWARE-ENGINEER/93957","title":"PRINCIPAL SOFTWARE ENGINEER","location":"United States of America Texas Richardson","private":false,"services":[{"type":"id","generated":false,"id":"Tool:106817070664247930","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231776126600520","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775485321502","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774666323920","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774515773093","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774206661614","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773865214260","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773858546548","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773853533403","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773849098825","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773848354670","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773847537497","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773845103618","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773838011785","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773813299908","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773669807419","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773513893852","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773405612798","typename":"Tool"}],"company":{"type":"id","generated":false,"id":"Company:107160118414842491","typename":"Company"},"__typename":"Job"},"Tool:106817070664247930":{"id":"106817070664247930","name":"Queue","slug":"usequeue","title":"Collect visual feedback for your website in seconds","verified":false,"imageUrl":"https://img.stackshare.io/service/39896/default_42d0c2e8bd0f8244d09ae34f8c42f3ed25e1c9cb.jpg","canonicalUrl":"/usequeue","path":"/usequeue","votes":0,"fans":17,"stacks":14,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231776126600520":{"id":"101231776126600520","name":"Git Flow","slug":"git-flow","title":"A set of git extensions to provide high-level repository operations","verified":false,"imageUrl":"https://img.stackshare.io/no-img-open-source.png","canonicalUrl":"/git-flow","path":"/git-flow","votes":0,"fans":102,"stacks":92,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231775485321502":{"id":"101231775485321502","name":"Azure DevOps","slug":"azure-devops","title":"Services for teams to share code, track work, and ship software","verified":true,"imageUrl":"https://img.stackshare.io/service/4313/XNKktHjN_400x400.png","canonicalUrl":"/azure-devops","path":"/azure-devops","votes":244,"fans":3193,"stacks":2399,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774666323920":{"id":"101231774666323920","name":"Spring Boot","slug":"spring-boot","title":"Create Spring-powered, production-grade applications and services with absolute minimum fuss","verified":false,"imageUrl":"https://img.stackshare.io/service/2927/nPzvMuo2_400x400.png","canonicalUrl":"/spring-boot","path":"/spring-boot","votes":994,"fans":23153,"stacks":21665,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774515773093":{"id":"101231774515773093","name":"SonarQube","slug":"sonarqube","title":"Continuous Code Quality","verified":false,"imageUrl":"https://img.stackshare.io/service/2638/zIVhxKyn_400x400.png","canonicalUrl":"/sonarqube","path":"/sonarqube","votes":49,"fans":2251,"stacks":1568,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774206661614":{"id":"101231774206661614","name":"Kubernetes","slug":"kubernetes","title":"Manage a cluster of Linux containers as a single system to accelerate Dev and simplify Ops","verified":false,"imageUrl":"https://img.stackshare.io/service/1885/21_d3cvM.png","canonicalUrl":"/kubernetes","path":"/kubernetes","votes":639,"fans":51027,"stacks":49985,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773865214260":{"id":"101231773865214260","name":"Kafka","slug":"kafka","title":"Distributed, fault tolerant, high throughput pub-sub messaging system","verified":false,"imageUrl":"https://img.stackshare.io/service/1063/kazUJooF_400x400.jpg","canonicalUrl":"/kafka","path":"/kafka","votes":596,"fans":22180,"stacks":19922,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773858546548":{"id":"101231773858546548","name":"Git","slug":"git","title":"Fast, scalable, distributed revision control system","verified":false,"imageUrl":"https://img.stackshare.io/service/1046/git.png","canonicalUrl":"/git","path":"/git","votes":6591,"fans":171394,"stacks":172842,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773853533403":{"id":"101231773853533403","name":"PostgreSQL","slug":"postgresql","title":"A powerful, open source object-relational database system","verified":false,"imageUrl":"https://img.stackshare.io/service/1028/ASOhU5xJ.png","canonicalUrl":"/postgresql","path":"/postgresql","votes":3467,"fans":80085,"stacks":83787,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773849098825":{"id":"101231773849098825","name":"React","slug":"react","title":"A JavaScript library for building user interfaces","verified":false,"imageUrl":"https://img.stackshare.io/service/1020/OYIaJ1KK.png","canonicalUrl":"/react","path":"/react","votes":3950,"fans":136419,"stacks":143536,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773848354670":{"id":"101231773848354670","name":"AngularJS","slug":"angularjs","title":"Superheroic JavaScript MVW Framework","verified":false,"imageUrl":"https://img.stackshare.io/service/1019/square.png","canonicalUrl":"/angularjs","path":"/angularjs","votes":5234,"fans":50055,"stacks":56664,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773847537497":{"id":"101231773847537497","name":"Backbone.js","slug":"backbone","title":"Give your JS App some Backbone with Models, Views, Collections, and Events","verified":false,"imageUrl":"https://img.stackshare.io/service/1017/Screen_Shot_2012-04-28_at_8.52.15_PM.png","canonicalUrl":"/backbone","path":"/backbone","votes":675,"fans":3970,"stacks":7063,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773845103618":{"id":"101231773845103618","name":"Node.js","slug":"nodejs","title":"A platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications","verified":false,"imageUrl":"https://img.stackshare.io/service/1011/n1JRsFeB_400x400.png","canonicalUrl":"/nodejs","path":"/nodejs","votes":8511,"fans":155041,"stacks":159855,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773838011785":{"id":"101231773838011785","name":"Java","slug":"java","title":"A concurrent, class-based, object-oriented, language specifically designed to have as few implementation dependencies as possible","verified":false,"imageUrl":"https://img.stackshare.io/service/995/K85ZWV2F.png","canonicalUrl":"/java","path":"/java","votes":3670,"fans":100851,"stacks":111246,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773813299908":{"id":"101231773813299908","name":"StatsD","slug":"statsd","title":"Simple daemon for easy stats aggregation","verified":false,"imageUrl":"https://img.stackshare.io/service/932/default_b8c7d49298132d46fbef113905bcba1896158113.png","canonicalUrl":"/statsd","path":"/statsd","votes":31,"fans":340,"stacks":292,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773669807419":{"id":"101231773669807419","name":"Docker","slug":"docker","title":"Enterprise Container Platform for High-Velocity Innovation.","verified":true,"imageUrl":"https://img.stackshare.io/service/586/n4u37v9t_400x400.png","canonicalUrl":"/docker","path":"/docker","votes":3825,"fans":136606,"stacks":151632,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773513893852":{"id":"101231773513893852","name":"Microsoft Azure","slug":"microsoft-azure","title":"Integrated cloud services and infrastructure to support computing, database, analytics, mobile, and web scenarios.","verified":true,"imageUrl":"https://img.stackshare.io/service/213/default_88defae415fcb9cd0ac5d36c1ed27e74133c6287.jpg","canonicalUrl":"/microsoft-azure","path":"/microsoft-azure","votes":768,"fans":17538,"stacks":21822,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773405612798":{"id":"101231773405612798","name":"Amazon EC2","slug":"amazon-ec2","title":"Scalable, pay-as-you-go compute capacity in the cloud","verified":false,"imageUrl":"https://img.stackshare.io/service/18/amazon-ec2.png","canonicalUrl":"/amazon-ec2","path":"/amazon-ec2","votes":2547,"fans":39421,"stacks":44689,"following":false,"followContext":null,"__typename":"Tool"},"Company:107160118414842491":{"imageUrl":"https://img.stackshare.io/company/171068/default_c0b85bbfd82e34f35a10a5b6ec5689ff9ea85dd2.png","name":"CBRE","id":"107160118414842491","path":"/companies/cbre","__typename":"Company"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).jobs({\"first\":8}).edges.0":{"node":{"type":"id","generated":false,"id":"Job:109313311154479772","typename":"Job"},"__typename":"JobEdge"},"Job:109251007927939299":{"name":"Sr Digital & Tech Manager","id":"109251007927939299","angellistJobUrl":"https://careers.cbre.com/careers/JobDetail/Sr-Digital-Tech-Manager/90755","title":"Sr Digital & Tech Manager","location":"United States of America Texas Richardson","private":false,"services":[{"type":"id","generated":false,"id":"Tool:108757677213174925","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:105145932858174927","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:102265348655058340","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231776388539159","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775485321502","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774206661614","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773865214260","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773855147984","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773854388643","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773853533403","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773851859414","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773703650742","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773513893852","typename":"Tool"}],"company":{"type":"id","generated":false,"id":"Company:107160118414842491","typename":"Company"},"__typename":"Job"},"Tool:108757677213174925":{"id":"108757677213174925","name":"Warrant","slug":"warrant","title":"Authorization and access control as a service","verified":false,"imageUrl":"https://img.stackshare.io/service/41089/default_1c7987dcedc5d1c55ca4214f76b496643c4aad1d.jpg","canonicalUrl":"/warrant","path":"/warrant","votes":0,"fans":5,"stacks":0,"following":false,"followContext":null,"__typename":"Tool"},"Tool:105145932858174927":{"id":"105145932858174927","name":"LINE","slug":"line","title":"Get engaged in interactive conversations with LINE users","verified":false,"imageUrl":"https://img.stackshare.io/service/21473/default_eed5a2be803281883df89f1268dc387f73e5b552.png","canonicalUrl":"/line","path":"/line","votes":0,"fans":103,"stacks":107,"following":false,"followContext":null,"__typename":"Tool"},"Tool:102265348655058340":{"id":"102265348655058340","name":"Scope","slug":"scope","title":"Better understand the workflow of the code processes","verified":false,"imageUrl":"https://img.stackshare.io/service/11109/KteF6X89_400x400.jpg","canonicalUrl":"/scope","path":"/scope","votes":0,"fans":34,"stacks":25,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231776388539159":{"id":"101231776388539159","name":"Snowflake","slug":"snowflake","title":"The data warehouse built for the cloud","verified":true,"imageUrl":"https://img.stackshare.io/service/5889/default_768181e102486f7411fe5f997dac1328d057c2cf.png","canonicalUrl":"/snowflake","path":"/snowflake","votes":19,"fans":1149,"stacks":881,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773855147984":{"id":"101231773855147984","name":"Cassandra","slug":"cassandra","title":"A partitioned row store. Rows are organized into tables with a required primary key.","verified":false,"imageUrl":"https://img.stackshare.io/service/1032/cassandra_small.png","canonicalUrl":"/cassandra","path":"/cassandra","votes":500,"fans":4046,"stacks":3353,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773854388643":{"id":"101231773854388643","name":"MongoDB","slug":"mongodb","title":"The database for giant ideas","verified":true,"imageUrl":"https://img.stackshare.io/service/1030/leaf-360x360.png","canonicalUrl":"/mongodb","path":"/mongodb","votes":4130,"fans":80410,"stacks":80381,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773851859414":{"id":"101231773851859414","name":"MySQL","slug":"mysql","title":"The world's most popular open source database","verified":false,"imageUrl":"https://img.stackshare.io/service/1025/logo-mysql-170x170.png","canonicalUrl":"/mysql","path":"/mysql","votes":3729,"fans":103838,"stacks":106602,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773703650742":{"id":"101231773703650742","name":"Jenkins","slug":"jenkins","title":"An extendable open source continuous integration server","verified":false,"imageUrl":"https://img.stackshare.io/service/670/jenkins.png","canonicalUrl":"/jenkins","path":"/jenkins","votes":2239,"fans":51891,"stacks":51973,"following":false,"followContext":null,"__typename":"Tool"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).jobs({\"first\":8}).edges.1":{"node":{"type":"id","generated":false,"id":"Job:109251007927939299","typename":"Job"},"__typename":"JobEdge"},"Job:108707035985904015":{"name":"Senior Backend Engineer, User Understanding","id":"108707035985904015","angellistJobUrl":"https://www.pinterestcareers.com/job-form?gh_jid=3699835","title":"Senior Backend Engineer, User Understanding","location":"San Francisco, CA, US","private":false,"services":[{"type":"id","generated":false,"id":"Tool:107846281190496441","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773865214260","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773857450417","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773838011785","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773837179153","typename":"Tool"}],"company":{"type":"id","generated":false,"id":"Company:101231709530029071","typename":"Company"},"__typename":"Job"},"Tool:107846281190496441":{"id":"107846281190496441","name":"Dream","slug":"dream-framework","title":"Tidy, feature-complete Web framework","verified":false,"imageUrl":"https://img.stackshare.io/service/40514/default_c19d22a0eb52861815d6674d4209c48b26039df7.png","canonicalUrl":"/dream-framework","path":"/dream-framework","votes":0,"fans":4,"stacks":0,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773857450417":{"id":"101231773857450417","name":"Hadoop","slug":"hadoop","title":"Open-source software for reliable, scalable, distributed computing","verified":false,"imageUrl":"https://img.stackshare.io/service/1044/elephant_rgb_sq.png","canonicalUrl":"/hadoop","path":"/hadoop","votes":56,"fans":2584,"stacks":2324,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773837179153":{"id":"101231773837179153","name":"Python","slug":"python","title":"A clear and powerful object-oriented programming language, comparable to Perl, Ruby, Scheme, or Java.","verified":false,"imageUrl":"https://img.stackshare.io/service/993/pUBY5pVj.png","canonicalUrl":"/python","path":"/python","votes":6656,"fans":189723,"stacks":195818,"following":false,"followContext":null,"__typename":"Tool"},"Company:101231709530029071":{"imageUrl":"https://img.stackshare.io/company/260/default_c077fc04bb219001b7a1ab10f90ebcdb00c143a9.png","name":"Pinterest","id":"101231709530029071","path":"/companies/pinterest","__typename":"Company"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).jobs({\"first\":8}).edges.2":{"node":{"type":"id","generated":false,"id":"Job:108707035985904015","typename":"Job"},"__typename":"JobEdge"},"Job:108707034229336625":{"name":"Machine Learning Engineer, Content Quality Signals","id":"108707034229336625","angellistJobUrl":"https://www.pinterestcareers.com/job-form?gh_jid=2265981","title":"Machine Learning Engineer, Content Quality Signals","location":"Toronto, ON, CA","private":false,"services":[{"type":"id","generated":false,"id":"Tool:107846281190496441","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231777504503046","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774686680600","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773865214260","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773857450417","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773845539901","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773838011785","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773837179153","typename":"Tool"}],"company":{"type":"id","generated":false,"id":"Company:101231709530029071","typename":"Company"},"__typename":"Job"},"Tool:101231777504503046":{"id":"101231777504503046","name":"PyTorch","slug":"pytorch","title":"A deep learning framework that puts Python first","verified":false,"imageUrl":"https://img.stackshare.io/service/8171/YYpjkbVn_400x400.jpg","canonicalUrl":"/pytorch","path":"/pytorch","votes":42,"fans":1594,"stacks":1248,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774686680600":{"id":"101231774686680600","name":"Apache Flink","slug":"flink","title":"Fast and reliable large-scale data processing engine","verified":true,"imageUrl":"https://img.stackshare.io/service/2968/kQB_QIB_.png","canonicalUrl":"/flink","path":"/flink","votes":38,"fans":874,"stacks":464,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773845539901":{"id":"101231773845539901","name":"Scala","slug":"scala","title":"A pure-bred object-oriented language that runs on the JVM","verified":false,"imageUrl":"https://img.stackshare.io/service/1012/scala.png","canonicalUrl":"/scala","path":"/scala","votes":1515,"fans":8548,"stacks":9047,"following":false,"followContext":null,"__typename":"Tool"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).jobs({\"first\":8}).edges.3":{"node":{"type":"id","generated":false,"id":"Job:108707034229336625","typename":"Job"},"__typename":"JobEdge"},"Job:108706932477350771":{"name":"Software Engineer, Signal Delivery","id":"108706932477350771","angellistJobUrl":"https://www.pinterestcareers.com/job-form?gh_jid=3317300","title":"Software Engineer, Signal Delivery","location":"Toronto, ON, CA","private":false,"services":[{"type":"id","generated":false,"id":"Tool:107846281190496441","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774686680600","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773865214260","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773857450417","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773845539901","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773838011785","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773837179153","typename":"Tool"}],"company":{"type":"id","generated":false,"id":"Company:101231709530029071","typename":"Company"},"__typename":"Job"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).jobs({\"first\":8}).edges.4":{"node":{"type":"id","generated":false,"id":"Job:108706932477350771","typename":"Job"},"__typename":"JobEdge"},"Job:108706931902165581":{"name":"Software Engineer, Logging Platform","id":"108706931902165581","angellistJobUrl":"https://www.pinterestcareers.com/job-form?gh_jid=4226505","title":"Software Engineer, Logging Platform","location":"San Francisco, CA","private":false,"services":[{"type":"id","generated":false,"id":"Tool:107846281190496441","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:104049138318269073","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101717663106409253","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231776628897305","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774778599369","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774426337070","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774206661614","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774068594470","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773865214260","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773857450417","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773838011785","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773837179153","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773669807419","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773628223844","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773405612798","typename":"Tool"}],"company":{"type":"id","generated":false,"id":"Company:101231709530029071","typename":"Company"},"__typename":"Job"},"Tool:104049138318269073":{"id":"104049138318269073","name":"Collect","slug":"collect","title":"Easy to use secure portal solution to collect and manage client documents","verified":false,"imageUrl":"https://img.stackshare.io/service/12142/U9KsL1zr_400x400.jpg","canonicalUrl":"/collect","path":"/collect","votes":0,"fans":20,"stacks":17,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101717663106409253":{"id":"101717663106409253","name":"Linux","slug":"linux","title":"A family of free and open source software operating systems based on the Linux kernel","verified":true,"imageUrl":"https://img.stackshare.io/service/10483/linux.png","canonicalUrl":"/linux","path":"/linux","votes":35,"fans":2815,"stacks":2574,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231776628897305":{"id":"101231776628897305","name":"TiDB","slug":"tidb","title":"A distributed NewSQL database compatible with MySQL protocol","verified":false,"imageUrl":"https://img.stackshare.io/service/6377/thumb_logo_with_text.png","canonicalUrl":"/tidb","path":"/tidb","votes":16,"fans":158,"stacks":62,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774778599369":{"id":"101231774778599369","name":"Airflow","slug":"airflow","title":"A platform to programmaticaly author, schedule and monitor data pipelines, by Airbnb","verified":true,"imageUrl":"https://img.stackshare.io/service/3130/airflow.png","canonicalUrl":"/airflow","path":"/airflow","votes":125,"fans":2777,"stacks":1493,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774426337070":{"id":"101231774426337070","name":"RocksDB","slug":"rocksdb","title":"Embeddable persistent key-value store for fast storage, developed and maintained by Facebook Database Engineering Team","verified":false,"imageUrl":"https://img.stackshare.io/service/2432/81KLTHHZ.png","canonicalUrl":"/rocksdb","path":"/rocksdb","votes":11,"fans":290,"stacks":103,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774068594470":{"id":"101231774068594470","name":"Zookeeper","slug":"zookeeper","title":"Because coordinating distributed systems is a Zoo","verified":false,"imageUrl":"https://img.stackshare.io/service/1528/apache-zookeeper.png","canonicalUrl":"/zookeeper","path":"/zookeeper","votes":42,"fans":1067,"stacks":662,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773628223844":{"id":"101231773628223844","name":"Puppet Labs","slug":"puppet","title":"Server automation framework and application","verified":true,"imageUrl":"https://img.stackshare.io/service/421/954f7381089ac290b4690c5ffd9dd7d3.png","canonicalUrl":"/puppet","path":"/puppet","votes":225,"fans":946,"stacks":975,"following":false,"followContext":null,"__typename":"Tool"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).jobs({\"first\":8}).edges.5":{"node":{"type":"id","generated":false,"id":"Job:108706931902165581","typename":"Job"},"__typename":"JobEdge"},"Job:108706928379078101":{"name":"Software Engineer, Big Data","id":"108706928379078101","angellistJobUrl":"https://www.pinterestcareers.com/job-form?gh_jid=4109875","title":"Software Engineer, Big Data","location":"San Francisco, CA, US","private":false,"services":[{"type":"id","generated":false,"id":"Tool:107846281190496441","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774778599369","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774686680600","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774501522052","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773865214260","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773857450417","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773845539901","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773838011785","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773837179153","typename":"Tool"}],"company":{"type":"id","generated":false,"id":"Company:101231709530029071","typename":"Company"},"__typename":"Job"},"Tool:101231774501522052":{"id":"101231774501522052","name":"Presto","slug":"presto","title":"Distributed SQL Query Engine for Big Data","verified":true,"imageUrl":"https://img.stackshare.io/service/2606/default_9c42299fc673a12eed0ad20cb7f5c1fd4ef5c80f.png","canonicalUrl":"/presto","path":"/presto","votes":66,"fans":1062,"stacks":378,"following":false,"followContext":null,"__typename":"Tool"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).jobs({\"first\":8}).edges.6":{"node":{"type":"id","generated":false,"id":"Job:108706928379078101","typename":"Job"},"__typename":"JobEdge"},"Job:108491757813972938":{"name":"Software Engineer, Logging Platform","id":"108491757813972938","angellistJobUrl":"https://www.pinterestcareers.com/job/16058082/software-engineer-logging-platform-san-francisco-ca/?gh_src=9b2671b21&utm_source=stackshare&utm_medium=job-board&utm_campaign=2021-contracts","title":"Software Engineer, Logging Platform","location":"San Francisco, CA, US; Atlanta, GA, US; New York, NY, US","private":false,"services":[{"type":"id","generated":false,"id":"Tool:107846281190496441","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:104049138318269073","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101717663106409253","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231776628897305","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774778599369","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774426337070","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774206661614","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774068594470","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773865214260","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773857450417","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773838011785","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773837179153","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773669807419","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773628223844","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773405612798","typename":"Tool"}],"company":{"type":"id","generated":false,"id":"Company:101231709530029071","typename":"Company"},"__typename":"Job"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).jobs({\"first\":8}).edges.7":{"node":{"type":"id","generated":false,"id":"Job:108491757813972938","typename":"Job"},"__typename":"JobEdge"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).jobs({\"first\":8})":{"edges":[{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).jobs({\"first\":8}).edges.0","typename":"JobEdge"},{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).jobs({\"first\":8}).edges.1","typename":"JobEdge"},{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).jobs({\"first\":8}).edges.2","typename":"JobEdge"},{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).jobs({\"first\":8}).edges.3","typename":"JobEdge"},{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).jobs({\"first\":8}).edges.4","typename":"JobEdge"},{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).jobs({\"first\":8}).edges.5","typename":"JobEdge"},{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).jobs({\"first\":8}).edges.6","typename":"JobEdge"},{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).jobs({\"first\":8}).edges.7","typename":"JobEdge"}],"__typename":"JobConnection"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).featuredPosts({\"first\":8})":{"count":14,"pageInfo":{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).featuredPosts({\"first\":8}).pageInfo","typename":"PageInfo"},"edges":[{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).featuredPosts({\"first\":8}).edges.0","typename":"FeaturedPostEdge"},{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).featuredPosts({\"first\":8}).edges.1","typename":"FeaturedPostEdge"},{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).featuredPosts({\"first\":8}).edges.2","typename":"FeaturedPostEdge"},{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).featuredPosts({\"first\":8}).edges.3","typename":"FeaturedPostEdge"},{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).featuredPosts({\"first\":8}).edges.4","typename":"FeaturedPostEdge"},{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).featuredPosts({\"first\":8}).edges.5","typename":"FeaturedPostEdge"},{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).featuredPosts({\"first\":8}).edges.6","typename":"FeaturedPostEdge"},{"type":"id","generated":true,"id":"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).featuredPosts({\"first\":8}).edges.7","typename":"FeaturedPostEdge"}],"__typename":"FeaturedPostConnection"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).featuredPosts({\"first\":8}).pageInfo":{"hasNextPage":true,"endCursor":"OA","__typename":"PageInfo"},"FeaturedPost:102810013073885674":{"id":"102810013073885674","views":6462,"title":"How Sqreen handles 50,000 requests every minute in a write-heavy environment","imageUrl":"https://img.stackshare.io/stack/509106/default_fd1b6435408f1442f5ae7d246cd1d9e4cd345266.png","publishedAt":"2019-09-17T21:38:23Z","canonicalUrl":"/sqreen/how-sqreen-handles-50000-requests-every-minute-in-a-write-heavy-environment","previewImageUrl":"https://img.stackshare.io/stack/509106/d8ab71843241f09a6391c6ea9e6247d75391cda3.png","company":{"type":"id","generated":true,"id":"$FeaturedPost:102810013073885674.company","typename":"Company"},"tools":[{"type":"id","generated":false,"id":"Tool:101231773410696721","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773669807419","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773849098825","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773838011785","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773854388643","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773703650742","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773854768982","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773865214260","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773840406851","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773855606480","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773615579247","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773855147984","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773618167288","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773920582426","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773632626053","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774531819761","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231777373518603","typename":"Tool"}],"favoriteStacksCount":16,"__typename":"FeaturedPost"},"$FeaturedPost:102810013073885674.company":{"name":"Sqreen","__typename":"Company"},"Tool:101231773410696721":{"id":"101231773410696721","name":"GitHub","slug":"github","title":"Powerful collaboration, review, and code management for open source and private development projects","verified":true,"imageUrl":"https://img.stackshare.io/service/27/default_869c34d29acc794d60ecdd5d2b5bfc042a80a4ec.jpg","canonicalUrl":"/github","path":"/github","votes":10238,"fans":236547,"stacks":239198,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773854768982":{"id":"101231773854768982","name":"Redis","slug":"redis","title":"Open source (BSD licensed), in-memory data structure store","verified":false,"imageUrl":"https://img.stackshare.io/service/1031/default_cbce472cd134adc6688572f999e9122b9657d4ba.png","canonicalUrl":"/redis","path":"/redis","votes":3866,"fans":47857,"stacks":52335,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773840406851":{"id":"101231773840406851","name":"Flask","slug":"flask","title":"A microframework for Python based on Werkzeug, Jinja 2 and good intentions","verified":false,"imageUrl":"https://img.stackshare.io/service/1001/default_6d109315b60108628b7cd3e159b84645c31ef0e2.png","canonicalUrl":"/flask","path":"/flask","votes":1592,"fans":17913,"stacks":17097,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773855606480":{"id":"101231773855606480","name":"Memcached","slug":"memcached","title":"High-performance, distributed memory object caching system","verified":false,"imageUrl":"https://img.stackshare.io/service/1040/hDNnpa4a_400x400.jpg","canonicalUrl":"/memcached","path":"/memcached","votes":470,"fans":6195,"stacks":6753,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773615579247":{"id":"101231773615579247","name":"Amazon DynamoDB","slug":"amazon-dynamodb","title":"Fully managed NoSQL database service","verified":false,"imageUrl":"https://img.stackshare.io/service/389/amazon-dynamodb.png","canonicalUrl":"/amazon-dynamodb","path":"/amazon-dynamodb","votes":195,"fans":3796,"stacks":4643,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773920582426":{"id":"101231773920582426","name":"Meteor","slug":"meteor","title":"An ultra-simple, database-everywhere, data-on-the-wire, pure-Javascript web framework","verified":true,"imageUrl":"https://img.stackshare.io/service/1162/uJPMDhZq.png","canonicalUrl":"/meteor","path":"/meteor","votes":1727,"fans":2198,"stacks":1832,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773632626053":{"id":"101231773632626053","name":"Amazon Kinesis","slug":"amazon-kinesis","title":"Store and process terabytes of data each hour from hundreds of thousands of sources","verified":false,"imageUrl":"https://img.stackshare.io/service/433/default_6bea44ee4da746fbb7c9070a7ffac9b764d1ed79.png","canonicalUrl":"/amazon-kinesis","path":"/amazon-kinesis","votes":9,"fans":708,"stacks":742,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774531819761":{"id":"101231774531819761","name":"Codecov","slug":"codecov","title":"Hosted coverage reports with awesome features to enhance your CI workflow","verified":true,"imageUrl":"https://img.stackshare.io/service/2673/Codecov_Mark_Circle_Pink.png","canonicalUrl":"/codecov","path":"/codecov","votes":98,"fans":530,"stacks":805,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231777373518603":{"id":"101231777373518603","name":"Sqreen","slug":"sqreen","title":"Automated security for developers","verified":true,"imageUrl":"https://img.stackshare.io/service/7904/uUQKRitV_400x400.jpg","canonicalUrl":"/sqreen","path":"/sqreen","votes":51,"fans":90,"stacks":126,"following":false,"followContext":null,"__typename":"Tool"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).featuredPosts({\"first\":8}).edges.0":{"node":{"type":"id","generated":false,"id":"FeaturedPost:102810013073885674","typename":"FeaturedPost"},"__typename":"FeaturedPostEdge"},"FeaturedPost:101231809014099401":{"id":"101231809014099401","views":70954,"title":"Dubsmash: Scaling To 200 Million Users With 3 Engineers","imageUrl":"https://img.stackshare.io/stack/306419/default_2dafdc90d26a2bbc80c253f15e14a3fa1e19c92a.png","publishedAt":"2017-12-14T10:02:33Z","canonicalUrl":"/dubsmash/dubsmash-scaling-to-200-million-users-with-3-engineers","previewImageUrl":"https://img.stackshare.io/stack/306419/56d3229cafbbda9c2eec080851544b84db75aa33.png","company":{"type":"id","generated":true,"id":"$FeaturedPost:101231809014099401.company","typename":"Company"},"tools":[{"type":"id","generated":false,"id":"Tool:101231773410696721","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773837179153","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773845103618","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773669807419","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773849098825","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773838011785","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773433737219","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773853533403","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773854768982","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773409399220","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773837565192","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773774313645","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775212866992","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775357043443","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773470689784","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773844705754","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774215979427","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773864300849","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774781423216","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773840406851","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773403188549","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773842107538","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773844232272","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775176212882","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773855606480","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773615579247","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773618167288","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231776161934711","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774105508825","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773871944512","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773623413723","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773713150436","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773618592622","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773671105654","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773544486441","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774222037205","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773632985587","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773632626053","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774408361220","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774461910966","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773665355731","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774327775574","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774082628081","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231776258658158","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773759067771","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775294333063","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775267164098","typename":"Tool"}],"favoriteStacksCount":53,"__typename":"FeaturedPost"},"$FeaturedPost:101231809014099401.company":{"name":"Dubsmash","__typename":"Company"},"Tool:101231773433737219":{"id":"101231773433737219","name":"Google Analytics","slug":"google-analytics","title":"Enterprise-class web analytics.","verified":false,"imageUrl":"https://img.stackshare.io/service/64/cU74ahCn_400x400.jpg","canonicalUrl":"/google-analytics","path":"/google-analytics","votes":5037,"fans":52859,"stacks":119982,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773409399220":{"id":"101231773409399220","name":"Amazon S3","slug":"amazon-s3","title":"Store and retrieve any amount of data, at any time, from anywhere on the web","verified":false,"imageUrl":"https://img.stackshare.io/service/25/amazon-s3.png","canonicalUrl":"/amazon-s3","path":"/amazon-s3","votes":2046,"fans":42650,"stacks":49170,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773837565192":{"id":"101231773837565192","name":"Django","slug":"django","title":"The Web framework for perfectionists with deadlines","verified":false,"imageUrl":"https://img.stackshare.io/service/994/4aGjtNQv.png","canonicalUrl":"/django","path":"/django","votes":4006,"fans":34332,"stacks":32682,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773774313645":{"id":"101231773774313645","name":"Elasticsearch","slug":"elasticsearch","title":"Open Source, Distributed, RESTful Search Engine","verified":true,"imageUrl":"https://img.stackshare.io/service/841/Image_2019-05-20_at_4.58.04_PM.png","canonicalUrl":"/elasticsearch","path":"/elasticsearch","votes":1633,"fans":29002,"stacks":31159,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231775212866992":{"id":"101231775212866992","name":"GraphQL","slug":"graphql","title":"A data query language and runtime","verified":false,"imageUrl":"https://img.stackshare.io/service/3820/12972006.png","canonicalUrl":"/graphql","path":"/graphql","votes":299,"fans":28769,"stacks":28761,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231775357043443":{"id":"101231775357043443","name":"Redux","slug":"reduxjs","title":"Predictable state container for JavaScript apps","verified":false,"imageUrl":"https://img.stackshare.io/service/4074/13142323.png","canonicalUrl":"/reduxjs","path":"/reduxjs","votes":661,"fans":24624,"stacks":26628,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773470689784":{"id":"101231773470689784","name":"Heroku","slug":"heroku","title":"Build, deliver, monitor and scale web apps and APIs with a trail blazing developer experience.","verified":true,"imageUrl":"https://img.stackshare.io/service/133/3wgIDj3j.png","canonicalUrl":"/heroku","path":"/heroku","votes":3210,"fans":23145,"stacks":23426,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773844705754":{"id":"101231773844705754","name":"Android SDK","slug":"android","title":"An SDK that provides you the API libraries and developer tools necessary to build, test, and debug apps for Android.","verified":false,"imageUrl":"https://img.stackshare.io/service/1010/m8jf0po4imu8t5eemjdd.png","canonicalUrl":"/android","path":"/android","votes":795,"fans":21945,"stacks":23389,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774215979427":{"id":"101231774215979427","name":"AWS Lambda","slug":"aws-lambda","title":"Automatically run code in response to modifications to objects in Amazon S3 buckets, messages in Kinesis streams, or updates in DynamoDB","verified":false,"imageUrl":"https://img.stackshare.io/service/1909/aws-lambda.png","canonicalUrl":"/aws-lambda","path":"/aws-lambda","votes":427,"fans":19863,"stacks":22094,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774781423216":{"id":"101231774781423216","name":"Docker Compose","slug":"docker-compose","title":"Define and run multi-container applications with Docker","verified":true,"imageUrl":"https://img.stackshare.io/service/3136/docker-compose.png","canonicalUrl":"/docker-compose","path":"/docker-compose","votes":501,"fans":17610,"stacks":18554,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773403188549":{"id":"101231773403188549","name":"Amazon CloudFront","slug":"amazon-cloudfront","title":"Content delivery with low latency and high data transfer speeds","verified":false,"imageUrl":"https://img.stackshare.io/service/13/amazon-cloudfront.png","canonicalUrl":"/amazon-cloudfront","path":"/amazon-cloudfront","votes":935,"fans":12089,"stacks":20018,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773842107538":{"id":"101231773842107538","name":"Golang","slug":"golang","title":"An open source programming language that makes it easy to build simple, reliable, and efficient software","verified":true,"imageUrl":"https://img.stackshare.io/service/1005/O6AczwfV_400x400.png","canonicalUrl":"/golang","path":"/golang","votes":3188,"fans":15675,"stacks":16096,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773844232272":{"id":"101231773844232272","name":"Swift","slug":"swift","title":"An innovative new programming language for Cocoa and Cocoa Touch. ","verified":false,"imageUrl":"https://img.stackshare.io/service/1009/tuHsaI2U.png","canonicalUrl":"/swift","path":"/swift","votes":1259,"fans":14171,"stacks":15997,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231775176212882":{"id":"101231775176212882","name":"Kotlin","slug":"kotlin","title":"Statically typed Programming Language targeting JVM and JavaScript","verified":true,"imageUrl":"https://img.stackshare.io/service/3750/pCfEzr6L.png","canonicalUrl":"/kotlin","path":"/kotlin","votes":618,"fans":11001,"stacks":11755,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231776161934711":{"id":"101231776161934711","name":"Apollo","slug":"apollo","title":"GraphQL server for Express, Connect, Hapi, Koa and more","verified":false,"imageUrl":"https://img.stackshare.io/service/5508/CyUH653y.png","canonicalUrl":"/apollo","path":"/apollo","votes":22,"fans":2219,"stacks":2246,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774105508825":{"id":"101231774105508825","name":"Django REST framework","slug":"django-rest-framework","title":"Web APIs for Django","verified":false,"imageUrl":"https://img.stackshare.io/service/1630/New_Project__67_.png","canonicalUrl":"/django-rest-framework","path":"/django-rest-framework","votes":304,"fans":2332,"stacks":1818,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773623413723":{"id":"101231773623413723","name":"AWS CloudFormation","slug":"aws-cloudformation","title":"Create and manage a collection of related AWS resources","verified":false,"imageUrl":"https://img.stackshare.io/service/411/aws-cloudformation.png","canonicalUrl":"/aws-cloudformation","path":"/aws-cloudformation","votes":89,"fans":1619,"stacks":1606,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773713150436":{"id":"101231773713150436","name":"Google BigQuery","slug":"google-bigquery","title":"Analyze terabytes of data in seconds","verified":true,"imageUrl":"https://img.stackshare.io/service/695/BigQuery.png","canonicalUrl":"/google-bigquery","path":"/google-bigquery","votes":146,"fans":1580,"stacks":1471,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773618592622":{"id":"101231773618592622","name":"Amazon SNS","slug":"amazon-sns","title":"Fully managed push messaging service","verified":false,"imageUrl":"https://img.stackshare.io/service/396/amazon-sns.png","canonicalUrl":"/amazon-sns","path":"/amazon-sns","votes":18,"fans":1433,"stacks":1326,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773671105654":{"id":"101231773671105654","name":"Algolia","slug":"algolia","title":"Developer-friendly API and complete set of tools for building search","verified":true,"imageUrl":"https://img.stackshare.io/service/589/iEEMVN5L_400x400.jpg","canonicalUrl":"/algolia","path":"/algolia","votes":695,"fans":1351,"stacks":1156,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773544486441":{"id":"101231773544486441","name":"Crashlytics","slug":"crashlytics","title":"The world's most powerful, yet lightest weight crash reporting solution. Free for everybody.","verified":false,"imageUrl":"https://img.stackshare.io/service/264/Q3LJPRGx.png","canonicalUrl":"/crashlytics","path":"/crashlytics","votes":340,"fans":766,"stacks":1015,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774222037205":{"id":"101231774222037205","name":"Amazon Aurora","slug":"amazon-aurora","title":"MySQL and PostgreSQL compatible relational database with several times better performance","verified":false,"imageUrl":"https://img.stackshare.io/service/1924/default_437b69de1bb8ef0ec297028e3caf75d539536eed.png","canonicalUrl":"/amazon-aurora","path":"/amazon-aurora","votes":54,"fans":868,"stacks":763,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773632985587":{"id":"101231773632985587","name":"Amazon RDS for PostgreSQL","slug":"amazon-rds-for-postgresql","title":" Set up, operate, and scale PostgreSQL deployments in the cloud","verified":false,"imageUrl":"https://img.stackshare.io/service/434/amazon-rds.png","canonicalUrl":"/amazon-rds-for-postgresql","path":"/amazon-rds-for-postgresql","votes":40,"fans":754,"stacks":779,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774408361220":{"id":"101231774408361220","name":"fastlane","slug":"fastlane","title":"Connect all iOS deployment tools into one streamlined workflow","verified":true,"imageUrl":"https://img.stackshare.io/service/2383/11098337.png","canonicalUrl":"/fastlane","path":"/fastlane","votes":72,"fans":519,"stacks":547,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774461910966":{"id":"101231774461910966","name":"Heroku Postgres","slug":"heroku-postgres","title":"Heroku's Database-as-a-Service. Based on the most powerful open-source database, PostgreSQL","verified":true,"imageUrl":"https://img.stackshare.io/service/2516/original.png","canonicalUrl":"/heroku-postgres","path":"/heroku-postgres","votes":38,"fans":397,"stacks":395,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773665355731":{"id":"101231773665355731","name":"Buildkite","slug":"buildkite","title":"Fast, secure and scalable CI/CD for all your software projects","verified":true,"imageUrl":"https://img.stackshare.io/service/577/default_2d19e0c5c214c1ba5cd484c8463d7dfe88eb2328.png","canonicalUrl":"/buildkite","path":"/buildkite","votes":115,"fans":268,"stacks":203,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774327775574":{"id":"101231774327775574","name":"Stream","slug":"stream","title":"Build scalable feeds, activity streams & chat in a few hours instead of months.","verified":true,"imageUrl":"https://img.stackshare.io/service/2213/mBSAJI_h_400x400.jpg","canonicalUrl":"/stream","path":"/stream","votes":54,"fans":262,"stacks":181,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774082628081":{"id":"101231774082628081","name":"Fabric by Twitter","slug":"fabric-by-twitter","title":"Mobile developer platform. ","verified":false,"imageUrl":"https://img.stackshare.io/service/1574/wKnU1vK2.png","canonicalUrl":"/fabric-by-twitter","path":"/fabric-by-twitter","votes":2,"fans":102,"stacks":168,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231776258658158":{"id":"101231776258658158","name":"Zappa","slug":"zappa","title":"Deploy all Python WSGI applications on AWS Lambda + API Gateway.","verified":false,"imageUrl":"https://img.stackshare.io/no-img-open-source.png","canonicalUrl":"/zappa","path":"/zappa","votes":0,"fans":110,"stacks":64,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773759067771":{"id":"101231773759067771","name":"Quay.io","slug":"quay-io","title":"Secure hosting for private Docker repositories","verified":true,"imageUrl":"https://img.stackshare.io/service/804/179b16534eda7c40ce8c7f1705c9fd18.png","canonicalUrl":"/quay-io","path":"/quay-io","votes":7,"fans":95,"stacks":63,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231775294333063":{"id":"101231775294333063","name":"Buddybuild","slug":"buddybuild","title":"A continuous integration, continuous deployment and user feedback platform for iOS and Android development teams","verified":true,"imageUrl":"https://img.stackshare.io/service/3985/Kc10bxNY_400x400.jpg","canonicalUrl":"/buddybuild","path":"/buddybuild","votes":41,"fans":72,"stacks":45,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231775267164098":{"id":"101231775267164098","name":"Pushwoosh","slug":"pushwoosh","title":"A cross-channel marketing automation platform for customer engagement","verified":true,"imageUrl":"https://img.stackshare.io/service/3921/default_0a393ecd5474d4652cf3889ab9f6f8d32cfb173d.jpg","canonicalUrl":"/pushwoosh","path":"/pushwoosh","votes":0,"fans":39,"stacks":17,"following":false,"followContext":null,"__typename":"Tool"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).featuredPosts({\"first\":8}).edges.1":{"node":{"type":"id","generated":false,"id":"FeaturedPost:101231809014099401","typename":"FeaturedPost"},"__typename":"FeaturedPostEdge"},"FeaturedPost:101231808365995189":{"id":"101231808365995189","views":35478,"title":"How Sentry Receives 20 Billion Events Per Month While Preparing to Handle Twice That","imageUrl":"https://img.stackshare.io/stack/304342/default_a3507ffa24597f83ed25ef8a638434cb4bea24e3.png","publishedAt":"2017-11-08T17:09:52Z","canonicalUrl":"/sentry/how-sentry-receives-20-billion-events-per-month-while-preparing-to-handle-twice-that","previewImageUrl":"https://img.stackshare.io/stack/304342/ad08772ef859d4e63bb445e15ca2832a6861bce2.gif","company":{"type":"id","generated":true,"id":"$FeaturedPost:101231808365995189.company","typename":"Company"},"tools":[{"type":"id","generated":false,"id":"Tool:101231773939333405","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773410696721","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773837179153","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773669807419","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773849098825","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773705712932","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773433737219","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773861864225","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773853533403","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775376642511","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773854768982","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773837565192","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774125163302","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773864300849","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774565594919","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773450178959","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773501596063","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773649935410","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773636491087","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773421016326","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773703014119","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773869138699","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773927221330","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773871944512","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773892637981","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773713150436","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773456856070","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774728256352","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773856110685","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774613913004","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231776399053510","typename":"Tool"}],"favoriteStacksCount":27,"__typename":"FeaturedPost"},"$FeaturedPost:101231808365995189.company":{"name":"Sentry","__typename":"Company"},"Tool:101231773939333405":{"id":"101231773939333405","name":"JavaScript","slug":"javascript","title":"Lightweight, interpreted, object-oriented language with first-class functions","verified":false,"imageUrl":"https://img.stackshare.io/service/1209/javascript.jpeg","canonicalUrl":"/javascript","path":"/javascript","votes":7913,"fans":262443,"stacks":283365,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773705712932":{"id":"101231773705712932","name":"Slack","slug":"slack","title":"Bring all your communication together in one place","verified":false,"imageUrl":"https://img.stackshare.io/service/675/RNiSRYOF_400x400.jpg","canonicalUrl":"/slack","path":"/slack","votes":6025,"fans":100157,"stacks":105687,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773861864225":{"id":"101231773861864225","name":"NGINX","slug":"nginx","title":"A high performance free open source web server powering busiest sites on the Internet.","verified":true,"imageUrl":"https://img.stackshare.io/service/1052/YMxUfyWf.png","canonicalUrl":"/nginx","path":"/nginx","votes":5491,"fans":64870,"stacks":104975,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231775376642511":{"id":"101231775376642511","name":"ES6","slug":"es6","title":"The next version of JavaScript","verified":false,"imageUrl":"https://img.stackshare.io/service/4109/16407404782_8b9c57eab3.jpg","canonicalUrl":"/es6","path":"/es6","votes":164,"fans":61118,"stacks":62123,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774125163302":{"id":"101231774125163302","name":"Webpack","slug":"webpack","title":"A bundler for javascript and friends","verified":true,"imageUrl":"https://img.stackshare.io/service/1682/IMG_4636.PNG","canonicalUrl":"/webpack","path":"/webpack","votes":749,"fans":30023,"stacks":36000,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774565594919":{"id":"101231774565594919","name":"Babel","slug":"babel","title":"Use next generation JavaScript, today.","verified":true,"imageUrl":"https://img.stackshare.io/service/2739/-1wfGjNw.png","canonicalUrl":"/babel","path":"/babel","votes":390,"fans":12771,"stacks":17899,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773450178959":{"id":"101231773450178959","name":"Stripe","slug":"stripe","title":"Payments for developers","verified":true,"imageUrl":"https://img.stackshare.io/service/97/eW6tXeq3.png","canonicalUrl":"/stripe","path":"/stripe","votes":1536,"fans":13151,"stacks":16355,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773501596063":{"id":"101231773501596063","name":"Sentry","slug":"sentry","title":"See performance issues, fix errors faster, and optimize code health. ","verified":true,"imageUrl":"https://img.stackshare.io/service/191/lzoDXqf-.png","canonicalUrl":"/sentry","path":"/sentry","votes":859,"fans":10347,"stacks":12569,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773649935410":{"id":"101231773649935410","name":"Google Compute Engine","slug":"google-compute-engine","title":"Run large-scale workloads on virtual machines hosted on Google's infrastructure.","verified":false,"imageUrl":"https://img.stackshare.io/service/518/s01TMTGn.png","canonicalUrl":"/google-compute-engine","path":"/google-compute-engine","votes":423,"fans":10192,"stacks":10846,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773636491087":{"id":"101231773636491087","name":"Travis CI","slug":"travis-ci","title":"A hosted continuous integration service for open source and private projects","verified":true,"imageUrl":"https://img.stackshare.io/service/460/Lu6cGu0z_400x400.png","canonicalUrl":"/travis-ci","path":"/travis-ci","votes":1751,"fans":8293,"stacks":11088,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773421016326":{"id":"101231773421016326","name":"Twilio SendGrid","slug":"twilio-sendgrid","title":"Email Delivery. Simplified.","verified":true,"imageUrl":"https://img.stackshare.io/service/43/kQ_6nwmP.jpg","canonicalUrl":"/twilio-sendgrid","path":"/twilio-sendgrid","votes":720,"fans":6434,"stacks":9524,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773703014119":{"id":"101231773703014119","name":"Datadog","slug":"datadog","title":"Unify logs, metrics, and traces from across your distributed infrastructure.","verified":true,"imageUrl":"https://img.stackshare.io/service/669/default_34b3b9b42d07c33ac47ecdff75dd6f4f82aa70ee.jpg","canonicalUrl":"/datadog","path":"/datadog","votes":824,"fans":8399,"stacks":8030,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773869138699":{"id":"101231773869138699","name":"Rust","slug":"rust","title":"A safe, concurrent, practical language","verified":false,"imageUrl":"https://img.stackshare.io/service/1070/v7txhrjp9pdqrkdtxxp0.png","canonicalUrl":"/rust","path":"/rust","votes":1160,"fans":4752,"stacks":3655,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773927221330":{"id":"101231773927221330","name":"HAProxy","slug":"haproxy","title":"The Reliable, High Performance TCP/HTTP Load Balancer","verified":false,"imageUrl":"https://img.stackshare.io/service/1179/preview.png","canonicalUrl":"/haproxy","path":"/haproxy","votes":556,"fans":2529,"stacks":2379,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773892637981":{"id":"101231773892637981","name":"Jekyll","slug":"jekyll","title":"Blog-aware, static site generator in Ruby","verified":false,"imageUrl":"https://img.stackshare.io/service/1114/ad968c1615d956e800fa36494314f48c.jpeg","canonicalUrl":"/jekyll","path":"/jekyll","votes":231,"fans":1676,"stacks":1521,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773456856070":{"id":"101231773456856070","name":"PagerDuty","slug":"pagerduty","title":"Incident management with powerful visibility, reliable alerting, and improved collaboration","verified":true,"imageUrl":"https://img.stackshare.io/service/107/GtwgsQj5_400x400.jpg","canonicalUrl":"/pagerduty","path":"/pagerduty","votes":119,"fans":862,"stacks":990,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774728256352":{"id":"101231774728256352","name":"Redash","slug":"redash","title":"Easily query an existing database, share the dataset and visualize it in different ways","verified":true,"imageUrl":"https://img.stackshare.io/service/3033/NdQYl6cB_400x400.png","canonicalUrl":"/redash","path":"/redash","votes":11,"fans":517,"stacks":325,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773856110685":{"id":"101231773856110685","name":"Riak","slug":"riak","title":"A distributed, decentralized data storage system","verified":true,"imageUrl":"https://img.stackshare.io/service/1041/riak.png","canonicalUrl":"/riak","path":"/riak","votes":44,"fans":159,"stacks":100,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774613913004":{"id":"101231774613913004","name":"RefluxJS","slug":"refluxjs","title":"A simple library for uni-directional dataflow application architecture inspired by ReactJS Flux","verified":false,"imageUrl":"https://img.stackshare.io/no-img-open-source.png","canonicalUrl":"/refluxjs","path":"/refluxjs","votes":5,"fans":29,"stacks":29,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231776399053510":{"id":"101231776399053510","name":"Veneur","slug":"veneur","title":"High performance and global aggregation for Datadog","verified":true,"imageUrl":"https://img.stackshare.io/no-img-open-source.png","canonicalUrl":"/veneur","path":"/veneur","votes":0,"fans":16,"stacks":3,"following":false,"followContext":null,"__typename":"Tool"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).featuredPosts({\"first\":8}).edges.2":{"node":{"type":"id","generated":false,"id":"FeaturedPost:101231808365995189","typename":"FeaturedPost"},"__typename":"FeaturedPostEdge"},"FeaturedPost:101231806418971264":{"id":"101231806418971264","views":32272,"title":"How Uploadcare Built a Stack That Handles 350M File API Requests Per Day","imageUrl":"https://img.stackshare.io/stack/210138/default_390c70dea99718084250ef55824f73794d561bd1.png","publishedAt":"2017-07-28T07:41:42Z","canonicalUrl":"/uploadcare/how-uploadcare-built-a-stack-that-handles-350m-file-api-requests-per-day","previewImageUrl":"https://img.stackshare.io/stack/210138/uploadcare_preview.gif","company":{"type":"id","generated":true,"id":"$FeaturedPost:101231806418971264.company","typename":"Company"},"tools":[{"type":"id","generated":false,"id":"Tool:101231773410696721","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773837179153","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773845103618","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773849098825","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773705712932","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773861864225","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773853533403","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773854768982","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773409399220","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773405612798","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773457672502","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773837565192","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774125163302","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775357043443","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773531895266","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773840406851","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773403188549","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773450178959","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774492574471","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773620969295","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773703014119","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773541427411","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773615579247","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773456195039","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773398855818","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774913496026","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774105508825","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773871944512","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773590628959","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773627798007","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773402794654","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773997873230","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773777695089","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774904399748","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775542534809","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773840775583","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773430911322","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773545754049","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773544890869","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231776874624909","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775625982020","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775549126558","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774047396627","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774108324861","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774397484242","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231776752638828","typename":"Tool"}],"favoriteStacksCount":27,"__typename":"FeaturedPost"},"$FeaturedPost:101231806418971264.company":{"name":"Uploadcare","__typename":"Company"},"Tool:101231773457672502":{"id":"101231773457672502","name":"Trello","slug":"trello","title":"Your entire project, in a single glance","verified":false,"imageUrl":"https://img.stackshare.io/service/109/-CvHThPk_400x400.jpg","canonicalUrl":"/trello","path":"/trello","votes":3708,"fans":37474,"stacks":39413,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773531895266":{"id":"101231773531895266","name":"G Suite","slug":"g-suite","title":"Collaboration and productivity apps for Business","verified":false,"imageUrl":"https://img.stackshare.io/service/247/oYkAxyQM_400x400.jpg","canonicalUrl":"/g-suite","path":"/g-suite","votes":2473,"fans":17889,"stacks":30036,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774492574471":{"id":"101231774492574471","name":"AWS Elastic Load Balancing (ELB)","slug":"aws-elastic-load-balancing","title":"Automatically distribute your incoming application traffic across multiple Amazon EC2 instances","verified":false,"imageUrl":"https://img.stackshare.io/service/2587/aws-elastic-load-balancing.png","canonicalUrl":"/aws-elastic-load-balancing","path":"/aws-elastic-load-balancing","votes":59,"fans":9623,"stacks":11082,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773620969295":{"id":"101231773620969295","name":"Amazon CloudWatch","slug":"amazon-cloudwatch","title":"Monitor AWS resources and custom metrics generated by your applications and services","verified":false,"imageUrl":"https://img.stackshare.io/service/401/amazon-cloudwatch.png","canonicalUrl":"/amazon-cloudwatch","path":"/amazon-cloudwatch","votes":214,"fans":9138,"stacks":11104,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773541427411":{"id":"101231773541427411","name":"Intercom","slug":"intercom","title":"A fundamentally new way to communicate with your customers","verified":true,"imageUrl":"https://img.stackshare.io/service/257/qmwr6vjg_400x400.png","canonicalUrl":"/intercom","path":"/intercom","votes":602,"fans":3948,"stacks":6544,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773456195039":{"id":"101231773456195039","name":"Pingdom","slug":"pingdom","title":"Uptime and performance monitoring made easy","verified":false,"imageUrl":"https://img.stackshare.io/service/106/usvDLKsY_400x400.png","canonicalUrl":"/pingdom","path":"/pingdom","votes":579,"fans":1845,"stacks":2432,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773398855818":{"id":"101231773398855818","name":"Segment","slug":"segment","title":"A single hub to collect, translate and send your data with the flip of a switch.","verified":true,"imageUrl":"https://img.stackshare.io/service/5/default_aa447805966bbb635af0d113e93e1f1030497052.jpg","canonicalUrl":"/segment","path":"/segment","votes":275,"fans":1140,"stacks":3038,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774913496026":{"id":"101231774913496026","name":"React Router","slug":"react-router","title":"A complete routing solution for React.js","verified":false,"imageUrl":"https://img.stackshare.io/service/3350/8261421.png","canonicalUrl":"/react-router","path":"/react-router","votes":13,"fans":1566,"stacks":2747,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773590628959":{"id":"101231773590628959","name":"Rollbar","slug":"rollbar","title":"Proactively discover, predict, and remediate errors.","verified":true,"imageUrl":"https://img.stackshare.io/service/328/default_3147629185038a15dd41907749544023633da1ea.png","canonicalUrl":"/rollbar","path":"/rollbar","votes":530,"fans":1300,"stacks":1581,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773627798007":{"id":"101231773627798007","name":"Chef","slug":"chef","title":"Build, destroy and rebuild servers on any public or private cloud","verified":false,"imageUrl":"https://img.stackshare.io/service/420/24f4ef5e7a67c0d720bf9ae69dd6de2a.png","canonicalUrl":"/chef","path":"/chef","votes":345,"fans":1273,"stacks":1167,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773402794654":{"id":"101231773402794654","name":"Akamai","slug":"akamai","title":"The leading platform for cloud, mobile, media and security across any device, anywhere.","verified":false,"imageUrl":"https://img.stackshare.io/service/12/default_05272bd47547a7580e6086fe0d4d1c7f6626b349.png","canonicalUrl":"/akamai","path":"/akamai","votes":0,"fans":479,"stacks":1895,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773997873230":{"id":"101231773997873230","name":"TeamCity","slug":"teamcity","title":"TeamCity is an ultimate Continuous Integration tool for professionals","verified":true,"imageUrl":"https://img.stackshare.io/service/1357/317jQkeS.png","canonicalUrl":"/teamcity","path":"/teamcity","votes":309,"fans":1262,"stacks":1170,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773777695089":{"id":"101231773777695089","name":"Browserify","slug":"browserify","title":"Browser-side require() the node.js way","verified":false,"imageUrl":"https://img.stackshare.io/service/849/9esmqty2.png","canonicalUrl":"/browserify","path":"/browserify","votes":261,"fans":582,"stacks":946,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774904399748":{"id":"101231774904399748","name":"PostCSS","slug":"postcss","title":"Transform CSS with JS plugins","verified":false,"imageUrl":"https://img.stackshare.io/service/3339/rlFcjEdI.png","canonicalUrl":"/postcss","path":"/postcss","votes":49,"fans":681,"stacks":583,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231775542534809":{"id":"101231775542534809","name":"rollup","slug":"rollup","title":"The next-generation JavaScript module bundler","verified":false,"imageUrl":"https://img.stackshare.io/service/4423/zE8RTn9E_400x400.jpg","canonicalUrl":"/rollup","path":"/rollup","votes":16,"fans":324,"stacks":817,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773840775583":{"id":"101231773840775583","name":"Tornado","slug":"tornado","title":"A Python web framework and asynchronous networking library, originally developed at FriendFeed","verified":false,"imageUrl":"https://img.stackshare.io/service/1002/tornado.png","canonicalUrl":"/tornado","path":"/tornado","votes":165,"fans":484,"stacks":381,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773430911322":{"id":"101231773430911322","name":"KISSmetrics","slug":"kissmetrics","title":"Get actionable metrics for your business.","verified":false,"imageUrl":"https://img.stackshare.io/service/59/DtU2FDKR_400x400.jpg","canonicalUrl":"/kissmetrics","path":"/kissmetrics","votes":70,"fans":230,"stacks":512,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773545754049":{"id":"101231773545754049","name":"Help Scout","slug":"help-scout","title":"A help desk for teams that insist on a delightful customer experience","verified":true,"imageUrl":"https://img.stackshare.io/service/267/default_251e3f50802b29c4b3ecded4242f401a81eb17d5.png","canonicalUrl":"/help-scout","path":"/help-scout","votes":60,"fans":150,"stacks":341,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773544890869":{"id":"101231773544890869","name":"Keen","slug":"keen","title":"Keen is the platform that gives you powerful in-product analytics fast with minimal development time.","verified":true,"imageUrl":"https://img.stackshare.io/service/265/Keen-IO-Logo-no-text-transparent-1.png","canonicalUrl":"/keen","path":"/keen","votes":268,"fans":228,"stacks":233,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231776874624909":{"id":"101231776874624909","name":"AIOHTTP","slug":"aiohttp","title":"Asynchronous HTTP Client/Server for asyncio and Python","verified":false,"imageUrl":"https://img.stackshare.io/service/6835/aiohttp-icon-128x128.png","canonicalUrl":"/aiohttp","path":"/aiohttp","votes":0,"fans":178,"stacks":116,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231775625982020":{"id":"101231775625982020","name":"asyncio","slug":"asyncio","title":"Asynchronous I/O, event loop, coroutines and tasks","verified":false,"imageUrl":"https://img.stackshare.io/service/4569/0_cOqooDOsnb8jDm2G.png","canonicalUrl":"/asyncio","path":"/asyncio","votes":13,"fans":181,"stacks":97,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231775549126558":{"id":"101231775549126558","name":"LogDNA","slug":"logdna","title":"Easy beautiful logging in the cloud","verified":true,"imageUrl":"https://img.stackshare.io/service/4436/LogDNA_-_Logo.png","canonicalUrl":"/logdna","path":"/logdna","votes":18,"fans":157,"stacks":96,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774047396627":{"id":"101231774047396627","name":"Uploadcare","slug":"uploadcare","title":"File uploads, media processing, and adaptive delivery for web and mobile","verified":true,"imageUrl":"https://img.stackshare.io/service/1479/circle-transparent-2.png","canonicalUrl":"/uploadcare","path":"/uploadcare","votes":23,"fans":130,"stacks":70,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774108324861":{"id":"101231774108324861","name":"Nunjucks","slug":"nunjucks","title":"A templating language for JavaScript","verified":false,"imageUrl":"https://img.stackshare.io/service/1637/Microsoft.VisualStudio.Services.Icons.Default","canonicalUrl":"/nunjucks","path":"/nunjucks","votes":4,"fans":95,"stacks":54,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774397484242":{"id":"101231774397484242","name":"Pillow","slug":"pillow","title":"Maintained and Updated PIL (Python Image Library)","verified":false,"imageUrl":"https://img.stackshare.io/service/2375/pBeeJQDQ_normal.png","canonicalUrl":"/pillow","path":"/pillow","votes":0,"fans":26,"stacks":46,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231776752638828":{"id":"101231776752638828","name":"cssnano","slug":"cssnano","title":"A modular minifier, based on the PostCSS ecosystem. Created by @ben_eb.","verified":false,"imageUrl":"https://img.stackshare.io/service/6612/ehMiE-wz_normal.jpg","canonicalUrl":"/cssnano","path":"/cssnano","votes":0,"fans":35,"stacks":40,"following":false,"followContext":null,"__typename":"Tool"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).featuredPosts({\"first\":8}).edges.3":{"node":{"type":"id","generated":false,"id":"FeaturedPost:101231806418971264","typename":"FeaturedPost"},"__typename":"FeaturedPostEdge"},"FeaturedPost:101231805947216335":{"id":"101231805947216335","views":41791,"title":"How CircleCI Processes 4.5 Million Builds Per Month","imageUrl":"https://img.stackshare.io/stack/189324/default_6691ec8c761145f7c439a20ff9e05e57bdaca163.png","publishedAt":"2017-07-13T09:32:03Z","canonicalUrl":"/circleci/how-circleci-processes-4-5-million-builds-per-month","previewImageUrl":"https://img.stackshare.io/stack/189324/a62475f297c803aba5b5d9460037c9bb37be176a.png","company":{"type":"id","generated":true,"id":"$FeaturedPost:101231805947216335.company","typename":"Company"},"tools":[{"type":"id","generated":false,"id":"Tool:101231773410696721","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773858546548","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773669807419","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773705712932","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773853533403","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773854388643","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773482334926","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773854768982","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774206661614","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773409399220","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773405612798","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773411223883","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773864300849","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773842107538","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773649935410","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773501041914","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773703014119","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773941167904","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773398855818","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231776473814866","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773615096541","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774314369014","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773590628959","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773841187038","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231776419588718","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773460958511","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773456856070","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773692729304","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774204689068","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774619136028","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775148871383","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775590376828","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774064831768","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774651244830","typename":"Tool"}],"favoriteStacksCount":29,"__typename":"FeaturedPost"},"$FeaturedPost:101231805947216335.company":{"name":"CircleCI","__typename":"Company"},"Tool:101231773482334926":{"id":"101231773482334926","name":"Jira","slug":"jira","title":"The #1 software development tool used by agile teams to plan, track, and release great software.","verified":true,"imageUrl":"https://img.stackshare.io/service/154/default_53605d3093005bd7853e04a258c0d4746e803e29.jpg","canonicalUrl":"/jira","path":"/jira","votes":1169,"fans":50219,"stacks":53629,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773411223883":{"id":"101231773411223883","name":"Bitbucket","slug":"bitbucket","title":"One place to plan projects, collaborate on code, test and deploy, all with free private repositories","verified":true,"imageUrl":"https://img.stackshare.io/service/28/35O2KIRX_400x400.jpg","canonicalUrl":"/bitbucket","path":"/bitbucket","votes":2841,"fans":35823,"stacks":36695,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773501041914":{"id":"101231773501041914","name":"CircleCI","slug":"circleci","title":"Automate your development process quickly, safely, and at scale","verified":true,"imageUrl":"https://img.stackshare.io/service/190/CvqrSSFs_400x400.jpg","canonicalUrl":"/circleci","path":"/circleci","votes":962,"fans":8340,"stacks":10713,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773941167904":{"id":"101231773941167904","name":"R Language","slug":"r-language","title":"A language and environment for statistical computing and graphics","verified":false,"imageUrl":"https://img.stackshare.io/service/1213/r-logo.png","canonicalUrl":"/r-language","path":"/r-language","votes":399,"fans":2207,"stacks":2948,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231776473814866":{"id":"101231776473814866","name":"Zoom","slug":"zoom","title":"Video Conferencing, Web Conferencing, Webinars, Screen Sharing","verified":false,"imageUrl":"https://img.stackshare.io/service/6083/oD_oPSBP_400x400.jpg","canonicalUrl":"/zoom","path":"/zoom","votes":155,"fans":2367,"stacks":1610,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773615096541":{"id":"101231773615096541","name":"Amazon VPC","slug":"amazon-vpc","title":"Provision a logically isolated section of the AWS Cloud and launch AWS resources in a virtual network that you define","verified":false,"imageUrl":"https://img.stackshare.io/service/388/amazon-vpc.png","canonicalUrl":"/amazon-vpc","path":"/amazon-vpc","votes":46,"fans":977,"stacks":2192,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774314369014":{"id":"101231774314369014","name":"Pandas","slug":"pandas","title":"High-performance, easy-to-use data structures and data analysis tools for the Python programming language","verified":false,"imageUrl":"https://img.stackshare.io/service/2180/1284191.png","canonicalUrl":"/pandas","path":"/pandas","votes":22,"fans":1553,"stacks":1665,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773841187038":{"id":"101231773841187038","name":"Clojure","slug":"clojure","title":"A dynamic programming language that targets the Java Virtual Machine","verified":false,"imageUrl":"https://img.stackshare.io/service/1003/Clojure_300x300.png","canonicalUrl":"/clojure","path":"/clojure","votes":1080,"fans":1589,"stacks":1402,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231776419588718":{"id":"101231776419588718","name":"Helm","slug":"helm","title":"The Kubernetes Package Manager","verified":false,"imageUrl":"https://img.stackshare.io/service/5983/AHcBc6EG_400x400.jpg","canonicalUrl":"/helm","path":"/helm","votes":18,"fans":1143,"stacks":1180,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773460958511":{"id":"101231773460958511","name":"Pusher","slug":"pusher","title":"Hosted APIs to build realtime apps with less code","verified":true,"imageUrl":"https://img.stackshare.io/service/115/preview.png","canonicalUrl":"/pusher","path":"/pusher","votes":234,"fans":1500,"stacks":572,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773692729304":{"id":"101231773692729304","name":"Amplitude","slug":"amplitude","title":"User analytics to fuel explosive user growth","verified":true,"imageUrl":"https://img.stackshare.io/service/640/default_51e537c5ed098d3e9aba0eb94299e4575a556aec.jpg","canonicalUrl":"/amplitude","path":"/amplitude","votes":33,"fans":744,"stacks":832,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774204689068":{"id":"101231774204689068","name":"Looker","slug":"looker","title":"Pioneering the next generation of BI, data discovery & data analytics","verified":true,"imageUrl":"https://img.stackshare.io/service/1881/default_1431993fb5378db3220eeba43566bb9f356418f7.png","canonicalUrl":"/looker","path":"/looker","votes":9,"fans":641,"stacks":500,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774619136028":{"id":"101231774619136028","name":"ClojureScript","slug":"clojurescript","title":"A Clojure compiler targeting JavaScript","verified":false,"imageUrl":"https://img.stackshare.io/service/2831/cljs-logo-120b.png","canonicalUrl":"/clojurescript","path":"/clojurescript","votes":2,"fans":336,"stacks":298,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231775148871383":{"id":"101231775148871383","name":"Nomad","slug":"nomad","title":"A cluster manager and scheduler","verified":true,"imageUrl":"https://img.stackshare.io/service/3695/nomad.png","canonicalUrl":"/nomad","path":"/nomad","votes":32,"fans":381,"stacks":241,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231775590376828":{"id":"101231775590376828","name":"LaunchDarkly","slug":"launchdarkly","title":"Feature Management Platform","verified":true,"imageUrl":"https://img.stackshare.io/service/4506/default_11d18d52b1a22b048f9806361243c7ba4dd2c7a1.png","canonicalUrl":"/launchdarkly","path":"/launchdarkly","votes":5,"fans":337,"stacks":270,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774064831768":{"id":"101231774064831768","name":"Hubot","slug":"hubot","title":"A customizable life embetterment robot","verified":false,"imageUrl":"https://img.stackshare.io/service/1519/default_1c0aeb79ae252c37ecb2d079b5ffa8d90d64fb28.png","canonicalUrl":"/hubot","path":"/hubot","votes":60,"fans":293,"stacks":274,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774651244830":{"id":"101231774651244830","name":"Om","slug":"om","title":"ClojureScript interface to Facebook's React","verified":false,"imageUrl":"https://img.stackshare.io/service/2897/10822115.png","canonicalUrl":"/om","path":"/om","votes":0,"fans":25,"stacks":23,"following":false,"followContext":null,"__typename":"Tool"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).featuredPosts({\"first\":8}).edges.4":{"node":{"type":"id","generated":false,"id":"FeaturedPost:101231805947216335","typename":"FeaturedPost"},"__typename":"FeaturedPostEdge"},"FeaturedPost:101231795674466929":{"id":"101231795674466929","views":17103,"title":"How LaunchDarkly Serves Over 4 Billion Feature Flags Daily","imageUrl":"https://img.stackshare.io/stack/36962/default_b94e91592923c2d603f9862f033e7efb59636983.png","publishedAt":"2016-09-09T02:06:47Z","canonicalUrl":"/launchdarkly/how-launchdarkly-serves-over-4-billion-feature-flags-daily","previewImageUrl":"https://img.stackshare.io/stack/36962/4a17fece45a6f511aaff79f08ac536024c3a34e7.png","company":{"type":"id","generated":true,"id":"$FeaturedPost:101231795674466929.company","typename":"Company"},"tools":[{"type":"id","generated":false,"id":"Tool:101231773410696721","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773858546548","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773705712932","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773433737219","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773854388643","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773854768982","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773405612798","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773774313645","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773865214260","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773700412232","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773842107538","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773418092710","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774492574471","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773501041914","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773541427411","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773615579247","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773618167288","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773927221330","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773398855818","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773615096541","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773887881771","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773616958547","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773552487870","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775170694740","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775590376828","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774080733339","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773437839873","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774453217750","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774376831924","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773727742320","typename":"Tool"}],"favoriteStacksCount":27,"__typename":"FeaturedPost"},"$FeaturedPost:101231795674466929.company":{"name":"LaunchDarkly","__typename":"Company"},"Tool:101231773700412232":{"id":"101231773700412232","name":"Ansible","slug":"ansible","title":"Radically simple configuration-management, application deployment, task-execution, and multi-node orchestration engine","verified":true,"imageUrl":"https://img.stackshare.io/service/663/ElOjna20.png","canonicalUrl":"/ansible","path":"/ansible","votes":1309,"fans":16491,"stacks":16917,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773418092710":{"id":"101231773418092710","name":"Amazon Route 53","slug":"amazon-route-53","title":"A highly available and scalable Domain Name System (DNS) web service.","verified":false,"imageUrl":"https://img.stackshare.io/service/38/amazon-route-53.png","canonicalUrl":"/amazon-route-53","path":"/amazon-route-53","votes":678,"fans":10565,"stacks":12843,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773887881771":{"id":"101231773887881771","name":"Foundation","slug":"foundation","title":"The most advanced responsive front-end framework in the world","verified":true,"imageUrl":"https://img.stackshare.io/service/1105/ocLJW3ku_400x400.jpg","canonicalUrl":"/foundation","path":"/foundation","votes":738,"fans":1343,"stacks":1237,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773616958547":{"id":"101231773616958547","name":"Amazon ElastiCache","slug":"amazon-elasticache","title":"Deploy, operate, and scale an in-memory cache in the cloud","verified":false,"imageUrl":"https://img.stackshare.io/service/392/amazon-elasticache.png","canonicalUrl":"/amazon-elasticache","path":"/amazon-elasticache","votes":150,"fans":1236,"stacks":1339,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773552487870":{"id":"101231773552487870","name":"Fastly","slug":"fastly","title":"We're redefining content delivery.","verified":true,"imageUrl":"https://img.stackshare.io/service/274/9V2sLNfw.png","canonicalUrl":"/fastly","path":"/fastly","votes":152,"fans":599,"stacks":1050,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231775170694740":{"id":"101231775170694740","name":"Amazon Elasticsearch Service","slug":"amazon-elasticsearch-service","title":"Real-time, distributed search and analytics engine that fits nicely into a cloud environment","verified":false,"imageUrl":"https://img.stackshare.io/service/3736/amazon-elasticsearch-service.png","canonicalUrl":"/amazon-elasticsearch-service","path":"/amazon-elasticsearch-service","votes":24,"fans":363,"stacks":377,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774080733339":{"id":"101231774080733339","name":"ReadMe.io","slug":"readme-io","title":"Create and manage beautiful, interactive documentation the easy way","verified":true,"imageUrl":"https://img.stackshare.io/service/1570/default_59f521d302264f440a1b600eed39d6d12474c575.jpg","canonicalUrl":"/readme-io","path":"/readme-io","votes":69,"fans":386,"stacks":115,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773437839873":{"id":"101231773437839873","name":"Groove","slug":"groovehq","title":"Everything you need to convert, support, and delight your customers.","verified":true,"imageUrl":"https://img.stackshare.io/service/74/4vehL4fy_400x400.jpg","canonicalUrl":"/groovehq","path":"/groovehq","votes":10,"fans":54,"stacks":61,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774453217750":{"id":"101231774453217750","name":"Pushpin","slug":"pushpin","title":"Reverse proxy for realtime web services","verified":true,"imageUrl":"https://img.stackshare.io/service/2497/symbol.png","canonicalUrl":"/pushpin","path":"/pushpin","votes":3,"fans":52,"stacks":10,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774376831924":{"id":"101231774376831924","name":"Elevio","slug":"elevio","title":"Proactive customer care, where and when it's needed.","verified":true,"imageUrl":"https://img.stackshare.io/service/2317/O-bdrueR_400x400.png","canonicalUrl":"/elevio","path":"/elevio","votes":0,"fans":26,"stacks":20,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773727742320":{"id":"101231773727742320","name":"Fanout","slug":"fanout","title":"Realtime APIs made simple","verified":true,"imageUrl":"https://img.stackshare.io/service/732/7611724fbaa172dcf6e51ae0c4cc0be1.png","canonicalUrl":"/fanout","path":"/fanout","votes":0,"fans":34,"stacks":6,"following":false,"followContext":null,"__typename":"Tool"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).featuredPosts({\"first\":8}).edges.5":{"node":{"type":"id","generated":false,"id":"FeaturedPost:101231795674466929","typename":"FeaturedPost"},"__typename":"FeaturedPostEdge"},"FeaturedPost:101231795453321687":{"id":"101231795453321687","views":5222,"title":"How Troops Uses Scala To Process Millions of Salesforce Records","imageUrl":"https://img.stackshare.io/stack/36525/default_6473cec907adc3da96667380a68bb135b5790cc4.jpg","publishedAt":"2016-08-26T08:06:41Z","canonicalUrl":"/troops/how-troops-uses-scala-to-process-millions-of-salesforce-records","previewImageUrl":"https://img.stackshare.io/stack/36525/a38920da5d3a6cfa8f58d40d5475d3213a13c467.png","company":{"type":"id","generated":true,"id":"$FeaturedPost:101231795453321687.company","typename":"Company"},"tools":[{"type":"id","generated":false,"id":"Tool:101231773410696721","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773849098825","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773705712932","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773853533403","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773482334926","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773409399220","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773405612798","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775357043443","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774215979427","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773403188549","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773454477801","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773418092710","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774492574471","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773620969295","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774125690843","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773501041914","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773845539901","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773618167288","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773416481916","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773615096541","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773623413723","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773590628959","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773632985587","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774208362023","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775998134007","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775414251001","typename":"Tool"}],"favoriteStacksCount":15,"__typename":"FeaturedPost"},"$FeaturedPost:101231795453321687.company":{"name":"Troops","__typename":"Company"},"Tool:101231773454477801":{"id":"101231773454477801","name":"New Relic","slug":"new-relic","title":"New Relic is the industry’s largest and most comprehensive cloud-based observability platform.","verified":true,"imageUrl":"https://img.stackshare.io/service/103/default_193410db3a7e419c7b436961bf41d733c7346b59.png","canonicalUrl":"/new-relic","path":"/new-relic","votes":1931,"fans":9914,"stacks":21051,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774125690843":{"id":"101231774125690843","name":"Logstash","slug":"logstash","title":"Collect, Parse, & Enrich Data","verified":true,"imageUrl":"https://img.stackshare.io/service/1683/preview.png","canonicalUrl":"/logstash","path":"/logstash","votes":102,"fans":9579,"stacks":10432,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773416481916":{"id":"101231773416481916","name":"Salesforce Sales Cloud","slug":"salesforce-sales-cloud","title":"The world’s #1 CRM sales app","verified":false,"imageUrl":"https://img.stackshare.io/service/35/lGZFUPOW.png","canonicalUrl":"/salesforce-sales-cloud","path":"/salesforce-sales-cloud","votes":61,"fans":1971,"stacks":2655,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774208362023":{"id":"101231774208362023","name":"AWS CodeDeploy","slug":"aws-codedeploy","title":"Coordinate application deployments to Amazon EC2 instances","verified":false,"imageUrl":"https://img.stackshare.io/service/1888/aws-codedeploy.png","canonicalUrl":"/aws-codedeploy","path":"/aws-codedeploy","votes":38,"fans":705,"stacks":383,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231775998134007":{"id":"101231775998134007","name":"Drift","slug":"drift","title":"A messaging app that helps you grow your business.","verified":true,"imageUrl":"https://img.stackshare.io/service/5214/default_a31911db12cf4ea889f37b13114167054044b703.jpg","canonicalUrl":"/drift","path":"/drift","votes":0,"fans":124,"stacks":153,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231775414251001":{"id":"101231775414251001","name":"Logmatic","slug":"logmatic","title":"Funnel all logs, metrics and machine events into a single hub","verified":true,"imageUrl":"https://img.stackshare.io/service/4177/F2KCNjZd.jpg","canonicalUrl":"/logmatic","path":"/logmatic","votes":238,"fans":87,"stacks":68,"following":false,"followContext":null,"__typename":"Tool"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).featuredPosts({\"first\":8}).edges.6":{"node":{"type":"id","generated":false,"id":"FeaturedPost:101231795453321687","typename":"FeaturedPost"},"__typename":"FeaturedPostEdge"},"FeaturedPost:101231793224833871":{"id":"101231793224833871","views":6431,"title":"How Opsee Chose A Container Orchestration Platform","imageUrl":"https://img.stackshare.io/stack/31953/default_61e3ab0f9942d5b6635a5a3058f9ffca97af70b8.jpg","publishedAt":"2016-05-27T05:01:09Z","canonicalUrl":"/opsee-co/how-opsee-chose-a-container-orchestration-platform","previewImageUrl":"https://img.stackshare.io/stack/31953/903d02f0d556a3d133acdf26e10a3fbcfa27035d.jpg","company":{"type":"id","generated":true,"id":"$FeaturedPost:101231793224833871.company","typename":"Company"},"tools":[{"type":"id","generated":false,"id":"Tool:101231773410696721","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773669807419","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773405612798","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774215979427","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773700412232","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773842107538","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773523090140","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774215500019","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774492574471","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773620969295","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773501041914","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773615579247","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773423027961","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773618167288","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773511551351","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773615096541","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773623413723","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773618592622","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773632626053","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774096605322","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773759067771","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774925962064","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775605587227","typename":"Tool"}],"favoriteStacksCount":12,"__typename":"FeaturedPost"},"$FeaturedPost:101231793224833871.company":{"name":"Opsee Co","__typename":"Company"},"Tool:101231773523090140":{"id":"101231773523090140","name":"Amazon RDS","slug":"amazon-rds-for-mysql","title":"Set up, operate, and scale a relational database in the cloud.","verified":false,"imageUrl":"https://img.stackshare.io/service/232/amazon-rds.png","canonicalUrl":"/amazon-rds-for-mysql","path":"/amazon-rds-for-mysql","votes":759,"fans":12015,"stacks":15004,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774215500019":{"id":"101231774215500019","name":"Amazon EC2 Container Service","slug":"amazon-ec2-container-service","title":"Container management service that supports Docker containers","verified":true,"imageUrl":"https://img.stackshare.io/service/1908/amazon-ecs.png","canonicalUrl":"/amazon-ec2-container-service","path":"/amazon-ec2-container-service","votes":325,"fans":11067,"stacks":13114,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773423027961":{"id":"101231773423027961","name":"Mandrill","slug":"mandrill","title":"Send transactional, triggered, and personalized email, then track results.","verified":false,"imageUrl":"https://img.stackshare.io/service/46/0skjzkftgup526281tkn.png","canonicalUrl":"/mandrill","path":"/mandrill","votes":925,"fans":2241,"stacks":4428,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231773511551351":{"id":"101231773511551351","name":"AWS Elastic Beanstalk","slug":"aws-elastic-beanstalk","title":"Quickly deploy and manage applications in the AWS cloud. ","verified":false,"imageUrl":"https://img.stackshare.io/service/210/aws-elastic-beanstalk.png","canonicalUrl":"/aws-elastic-beanstalk","path":"/aws-elastic-beanstalk","votes":240,"fans":2200,"stacks":2155,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774096605322":{"id":"101231774096605322","name":"CoreOS","slug":"coreos","title":"Linux for Massive Server Deployments","verified":true,"imageUrl":"https://img.stackshare.io/service/1608/92f941aa760503ef8552a9fbc77ef9b6.png","canonicalUrl":"/coreos","path":"/coreos","votes":47,"fans":354,"stacks":226,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231774925962064":{"id":"101231774925962064","name":"Convox","slug":"convox","title":"Launch a Private Cloud in Minutes. The simplicity of Heroku. The power of AWS.","verified":true,"imageUrl":"https://img.stackshare.io/service/3368/preview.png","canonicalUrl":"/convox","path":"/convox","votes":37,"fans":68,"stacks":42,"following":false,"followContext":null,"__typename":"Tool"},"Tool:101231775605587227":{"id":"101231775605587227","name":"Opsee","slug":"opsee","title":"Continuously test your services and deploy with confidence. Effortless AWS monitoring, built for developers.","verified":true,"imageUrl":"https://img.stackshare.io/service/4523/iW5SxULr.png","canonicalUrl":"/opsee","path":"/opsee","votes":0,"fans":22,"stacks":7,"following":false,"followContext":null,"__typename":"Tool"},"$ROOT_QUERY.stackupBySlug({\"slug\":\"amazon-sqs-vs-celery-vs-rabbitmq\"}).featuredPosts({\"first\":8}).edges.7":{"node":{"type":"id","generated":false,"id":"FeaturedPost:101231793224833871","typename":"FeaturedPost"},"__typename":"FeaturedPostEdge"}}</script> <!-- glamorIds: 175 --> <script type="application/json" id="Stackup-glamor-f64f6f22-1d31-4ffb-b32b-766de043cde6">["1htug8r","1yodi52","iepywa","x5hg3h","u0iaox","9ilv8v","ii8qy4","1ag7ge9","ld8qhm","11b98zt","yawzxl","1aswmtz","qrny8b","1176rj6","zkwjas","i52n91","13sfqhu","1xexurq","1mlbi0l","1cda8k4","2an9kq","5x5cr6","rsz8c","4d5oui","10pc7td","1ukyolz","1uackhz","1ofkegx","81jah4","69zjs9","8a04gk","1m38k02","162qu2y","p797gu","1drwozb","gbti5j","1ahj942","1an0suy","14pk3xx","1o4togz","1i8b05s","1iqua1m","uw1ldh","4gnhqq","xkasvz","atv6j6","1m8tyev","1vf0ygt","utnqcw","ds0hbm","dg4ww9","z9ms26","6uh2e7","1pwtf47","t68yd0","1rz3855","i6njnm","1dp4k20","ztg526","1srb7t4","f7loz8","pvufaf","r1wkvc","1vusbpb","1jka35","26la4","1njwzsr","8sc56q","1d2ae58","1xq3kt1","3vlw85","1anvsjr","169quga","msbgqg","avtieu","omocl","pn8ojz","jaw8ve","19hrebc","5k0ecd","86zjul","1di6wpo","lr10t7","4yzqpf","st9eg3","x7ngfe","ihgrxl","124gz8p","1i4hfqi","2urik6","oa3yz4","1g9kten","yzfa9h","1pz1q9u","1rla8dl","1cqgl9p","1cm2u5n","lhxxg6","jyena0","s6ccv3","gyrv08","n746ki","1j2w1cg","1b2ktnx","103289b","lnzci0","odgfgk","1cuq2n9","1cl6o07","172fe00","1i2jin4","1f94cd7","f8hv9w","1v4wqws","uxqild","7c9av6","6nrkpz","p8n7zj","1uq0dwx","1p6gwer","acfjt6","w707sh","14bxxd1","1hlwa6q","f9zb2m","1wdjt5z","1bshyi4","1ke07jm","4pt7vy","mta8ak","13fg6qi","4lwqz5","cn7d1w","1fj3l7d","i272tr","56ijgy","1l7t0dr","ptavxb","p223ph","i5u9v5","1ewdw7x","ih8ay1","17niv7d","6mpj06","nio1yx","ak2nbp","9yycaw","leu1cr","156fhm0","12alag6","10hy8cb","vbbua8","1r3kfuo","wdkc2c","1iv3e1o","1ob9em9","1mpii3w","fa6ece","vbfwyr","1gtwocl","1kcdhc3","cuzej8","12h9n7t","m2gwm","14kdfdp","lscypq","maw68b","13nf4of","xd3exe","pitycd","19iq1g0","174u468","1sn2rjy","1ivvuvh","70bqh8"]</script> <style>@-webkit-keyframes animation_1htug8r{to{transform:rotate(360deg);-webkit-transform:rotate(360deg);}}@-moz-keyframes animation_1htug8r{to{transform:rotate(360deg);-webkit-transform:rotate(360deg);}}@-o-keyframes animation_1htug8r{to{transform:rotate(360deg);-webkit-transform:rotate(360deg);}}@keyframes animation_1htug8r{to{transform:rotate(360deg);-webkit-transform:rotate(360deg);}}@-webkit-keyframes animation_1yodi52{0%{background-position:0 0;}100%{background-position:100em 0;}}@-moz-keyframes animation_1yodi52{0%{background-position:0 0;}100%{background-position:100em 0;}}@-o-keyframes animation_1yodi52{0%{background-position:0 0;}100%{background-position:100em 0;}}@keyframes animation_1yodi52{0%{background-position:0 0;}100%{background-position:100em 0;}}@-webkit-keyframes animation_iepywa{0%, 100%{opacity:0;}50%{opacity:1;}}@-moz-keyframes animation_iepywa{0%, 100%{opacity:0;}50%{opacity:1;}}@-o-keyframes animation_iepywa{0%, 100%{opacity:0;}50%{opacity:1;}}@keyframes animation_iepywa{0%, 100%{opacity:0;}50%{opacity:1;}}@-webkit-keyframes animation_x5hg3h{100%{stroke-dashoffset:0;}}@-moz-keyframes animation_x5hg3h{100%{stroke-dashoffset:0;}}@-o-keyframes animation_x5hg3h{100%{stroke-dashoffset:0;}}@keyframes animation_x5hg3h{100%{stroke-dashoffset:0;}}@-webkit-keyframes animation_u0iaox{0%, 100%{transform:none;-webkit-transform:none;}50%{transform:scale3d(1.1, 1.1, 1);-webkit-transform:scale3d(1.1, 1.1, 1);}}@-moz-keyframes animation_u0iaox{0%, 100%{transform:none;-webkit-transform:none;}50%{transform:scale3d(1.1, 1.1, 1);-webkit-transform:scale3d(1.1, 1.1, 1);}}@-o-keyframes animation_u0iaox{0%, 100%{transform:none;-webkit-transform:none;}50%{transform:scale3d(1.1, 1.1, 1);-webkit-transform:scale3d(1.1, 1.1, 1);}}@keyframes animation_u0iaox{0%, 100%{transform:none;-webkit-transform:none;}50%{transform:scale3d(1.1, 1.1, 1);-webkit-transform:scale3d(1.1, 1.1, 1);}}@-webkit-keyframes animation_9ilv8v{100%{box-shadow:inset 0px 0px 0px 30px #068dfe;}}@-moz-keyframes animation_9ilv8v{100%{box-shadow:inset 0px 0px 0px 30px #068dfe;}}@-o-keyframes animation_9ilv8v{100%{box-shadow:inset 0px 0px 0px 30px #068dfe;}}@keyframes animation_9ilv8v{100%{box-shadow:inset 0px 0px 0px 30px #068dfe;}}.css-ii8qy4,[data-css-ii8qy4]{display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;flex-direction:column;width:1140px;height:100%;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;}.css-1ag7ge9,[data-css-1ag7ge9]{font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-weight:400;font-size:13px;line-height:1.7;letter-spacing:normal;-webkit-font-smoothing:antialiased;display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;flex-wrap:wrap;-webkit-box-lines:multiple;-webkit-flex-wrap:wrap;}@media only screen and (max-width: 812px){.css-1ag7ge9 > a,[data-css-1ag7ge9] > a{text-align:center;}}.css-ld8qhm,[data-css-ld8qhm]{text-decoration:none;cursor:pointer;color:#c2c2c2;}.css-ld8qhm:hover,[data-css-ld8qhm]:hover{color:#068dfe;}.css-11b98zt,[data-css-11b98zt]{color:#c2c2c2;margin:0 5px 0 5px;}.css-11b98zt::after,[data-css-11b98zt]::after{content:"/";}.css-yawzxl,[data-css-yawzxl]{width:1140px;}.css-1aswmtz,[data-css-1aswmtz]{height:95px;display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;position:-webkit-sticky; position: sticky;top:0;background-color:#fff;width:100%;z-index:100;}.css-qrny8b,[data-css-qrny8b]{display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;justify-content:space-between;width:100%;margin:0 auto;-webkit-box-pack:justify;-webkit-justify-content:space-between;}.css-1176rj6,[data-css-1176rj6]{display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;margin:15px 0 0 0;}.css-1176rj6 > a:last-of-type,[data-css-1176rj6] > a:last-of-type{margin-right:0;}.css-zkwjas,[data-css-zkwjas]{margin-top:4px;font-size:14px;}.css-zkwjas>span,[data-css-zkwjas]>span{margin-left:0;}.css-i52n91,[data-css-i52n91]{font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-weight:600;font-size:18px;line-height:1.7;letter-spacing:normal;-webkit-font-smoothing:antialiased;color:#333;margin:0;}.css-13sfqhu,[data-css-13sfqhu]{font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-weight:400;font-size:13px;line-height:1.69;letter-spacing:normal;-webkit-font-smoothing:antialiased;margin-top:8px;color:#707070;}.css-1xexurq,[data-css-1xexurq]{font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-weight:400;font-size:13px;line-height:1.7;letter-spacing:normal;-webkit-font-smoothing:antialiased;text-decoration:none;color:#068dfe;margin-top:10px;}.css-1mlbi0l,[data-css-1mlbi0l]{display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;align-items:center;margin-bottom:15px;flex-shrink:0;cursor:default;-webkit-box-align:center;-webkit-align-items:center;-webkit-flex-shrink:0;}.css-1mlbi0l > div:first-of-type,[data-css-1mlbi0l] > div:first-of-type{width:40px;flex-shrink:0;-webkit-flex-shrink:0;}.css-1cda8k4,[data-css-1cda8k4]{display:inline-block;border-radius:2px;cursor:pointer;background-color:#fff;border:1px solid #c2c2c2;color:#4a4a4a;}.css-2an9kq,[data-css-2an9kq]{display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;flex-direction:column;justify-content:center;align-items:center;padding-top:5px;padding-left:8px;padding-right:8px;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;-webkit-box-align:center;-webkit-align-items:center;}.css-5x5cr6,[data-css-5x5cr6]{font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-size:12px;font-weight:600;line-height:1.83;letter-spacing:0.5px;}.css-rsz8c,[data-css-rsz8c]{font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-weight:400;font-size:13px;line-height:1.7;letter-spacing:normal;-webkit-font-smoothing:antialiased;margin-left:10px;text-decoration:none;color:#000;}.css-4d5oui,[data-css-4d5oui]{font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-weight:400;font-size:13px;line-height:1.7;letter-spacing:normal;-webkit-font-smoothing:antialiased;color:#707070;display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;flex-direction:column;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;}.css-4d5oui strong,[data-css-4d5oui] strong{color:#333;}@media only screen and (max-width: 480px){.css-4d5oui,[data-css-4d5oui]{padding:10px;}}.css-10pc7td,[data-css-10pc7td]{display:grid;grid-template-columns:150px auto;grid-row-gap:20px;margin-bottom:20px;margin-top:20px;-ms-grid-template-columns:150px auto;-ms-grid-row-gap:20px;}@media only screen and (max-width: 480px){.css-10pc7td,[data-css-10pc7td]{grid-template-columns:100px auto;-ms-grid-template-columns:100px auto;}}.css-1ukyolz,[data-css-1ukyolz]{display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;flex-direction:row;font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-weight:400;font-size:13px;line-height:22px;letter-spacing:normal;-webkit-font-smoothing:antialiased;color:#707070;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;}.css-1uackhz,[data-css-1uackhz]{font-weight:600;}.css-1ofkegx,[data-css-1ofkegx]{font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-weight:400;font-size:13px;line-height:22px;letter-spacing:normal;-webkit-font-smoothing:antialiased;color:#707070;padding-left:10px;}.css-81jah4,[data-css-81jah4]{display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;justify-content:center;margin:50px 0;-webkit-box-pack:center;-webkit-justify-content:center;}.css-69zjs9,[data-css-69zjs9]{background:#f7f7f7;width:100%;display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;justify-content:center;padding-top:68px;padding-bottom:68px;-webkit-box-pack:center;-webkit-justify-content:center;}@media only screen and (max-width: 812px){.css-69zjs9,[data-css-69zjs9]{padding-top:30px;padding-bottom:50px;}}.css-8a04gk,[data-css-8a04gk]{width:1140px;display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;justify-content:space-between;padding-left:20px;padding-right:20px;-webkit-box-pack:justify;-webkit-justify-content:space-between;}@media only screen and (max-width: 812px){.css-8a04gk,[data-css-8a04gk]{flex-direction:column;justify-content:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;}}.css-1m38k02,[data-css-1m38k02]{font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-weight:400;font-size:13px;line-height:1.7;letter-spacing:normal;-webkit-font-smoothing:antialiased;color:#333;display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;flex-direction:column;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;}@media only screen and (max-width: 812px){.css-1m38k02,[data-css-1m38k02]{text-align:center;}}.css-162qu2y,[data-css-162qu2y]{font-size:20px;font-weight:600;letter-spacing:0.4px;}.css-p797gu,[data-css-p797gu]{font-size:13px;line-height:2.07;letter-spacing:0.3px;text-decoration:none;color:#333;}.css-p797gu:hover,[data-css-p797gu]:hover{color:#068dfe;}@media only screen and (max-width: 768px){.css-p797gu,[data-css-p797gu]{font-size:14px;}}.css-1drwozb,[data-css-1drwozb]{display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;width:80%;justify-content:space-between;align-items:center;order:4;-webkit-box-pack:justify;-webkit-justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;-webkit-order:4;}@media only screen and (max-width: 480px){.css-1drwozb,[data-css-1drwozb]{margin-bottom:20px;}}.css-gbti5j,[data-css-gbti5j]{display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;flex-direction:column;align-items:center;position:relative;color:#707070;font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-weight:400;font-size:13px;line-height:1.7;letter-spacing:normal;-webkit-font-smoothing:antialiased;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;}.css-gbti5j>:first-child,[data-css-gbti5j]>:first-child{margin-bottom:5px;}.css-gbti5j>span,[data-css-gbti5j]>span{color:#333;line-height:1.22;letter-spacing:0.8px;font-weight:600;font-size:18px;}.css-1ahj942,[data-css-1ahj942]{border-left:1px solid #e1e1e1;width:1px;height:36px;}.css-1an0suy,[data-css-1an0suy]{display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;flex-direction:column;align-items:center;position:relative;color:#707070;font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-weight:400;font-size:13px;line-height:1.7;letter-spacing:normal;-webkit-font-smoothing:antialiased;transition:color 0.6s ease-in-out;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;-webkit-transition:color 0.6s ease-in-out;-moz-transition:color 0.6s ease-in-out;}.css-1an0suy>:first-child,[data-css-1an0suy]>:first-child{margin-bottom:5px;}.css-1an0suy>span,[data-css-1an0suy]>span{color:#333;line-height:1.22;letter-spacing:0.8px;font-weight:600;font-size:18px;}.css-1an0suy div,[data-css-1an0suy] div{position:absolute;top:-15px;right:0;left:0;text-align:center;font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-weight:600;font-size:13px;line-height:1.7;letter-spacing:normal;-webkit-font-smoothing:antialiased;color:#45C57C;opacity:0;animation:none;-webkit-animation:none;}.css-14pk3xx,[data-css-14pk3xx]{height:32px;display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;justify-content:center;align-items:center;border-radius:2px;border:1px solid #068dfe;font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-size:13px;font-weight:400;letter-spacing:0.8px;background-color:#068dfe;color:#fff;text-decoration:none;cursor:pointer;-webkit-font-smoothing:antialiased;padding-top:0;padding-bottom:0;padding-left:8px;padding-right:8px;width:98px;outline:none;flex-grow:0;flex-shrink:0;margin-right:10px;-webkit-box-pack:center;-webkit-justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-webkit-flex-grow:0;-webkit-flex-shrink:0;}.css-14pk3xx:hover,[data-css-14pk3xx]:hover{background-color:rgba(6,141,254,0.8);border-color:rgba(6,141,254,0.79);color:#fff;}.css-1o4togz,[data-css-1o4togz]{height:32px;display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;justify-content:center;align-items:center;border-radius:2px;border:1px solid #068dfe;font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-size:13px;font-weight:400;letter-spacing:0.8px;background-color:#068dfe;color:#fff;text-decoration:none;cursor:pointer;-webkit-font-smoothing:antialiased;padding-top:0;padding-bottom:0;padding-left:16px;padding-right:16px;width:auto;outline:none;flex-grow:0;flex-shrink:0;-webkit-box-pack:center;-webkit-justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-webkit-flex-grow:0;-webkit-flex-shrink:0;}.css-1o4togz:hover,[data-css-1o4togz]:hover{background-color:rgba(6,141,254,0.8);border-color:rgba(6,141,254,0.79);color:#fff;}.css-1i8b05s,[data-css-1i8b05s]{display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;justify-content:center;margin-top:20px;-webkit-box-pack:center;-webkit-justify-content:center;}.css-1iqua1m,[data-css-1iqua1m]{height:32px;display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;justify-content:center;align-items:center;border-radius:2px;border:1px solid #068dfe;font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-size:13px;font-weight:400;letter-spacing:0.8px;background-color:#068dfe;color:#fff;text-decoration:none;cursor:pointer;-webkit-font-smoothing:antialiased;padding-top:0;padding-bottom:0;padding-left:16px;padding-right:16px;width:auto;outline:none;-webkit-box-pack:center;-webkit-justify-content:center;-webkit-box-align:center;-webkit-align-items:center;}.css-1iqua1m:hover,[data-css-1iqua1m]:hover{background-color:rgba(6,141,254,0.8);border-color:rgba(6,141,254,0.79);color:#fff;}.css-uw1ldh,[data-css-uw1ldh]{font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-weight:400;font-size:13px;line-height:1.7;letter-spacing:0.2px;-webkit-font-smoothing:antialiased;border-bottom:1px solid;border-color:#e1e1e1;padding:10px 0 20px 0;width:100%;}.css-4gnhqq,[data-css-4gnhqq]{display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;justify-content:space-between;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;}.css-xkasvz,[data-css-xkasvz]{display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;padding:20px 0;width:100%;}.css-atv6j6,[data-css-atv6j6]{margin-top:5px;}.css-1m8tyev,[data-css-1m8tyev]{position:relative;}.css-1m8tyev a,[data-css-1m8tyev] a{display:inline-block;}.css-1m8tyev img,[data-css-1m8tyev] img{width:31px;height:31px;border-radius:50%;}.css-1m8tyev> svg,[data-css-1m8tyev]> svg{width:31px;height:31px;}.css-1vf0ygt,[data-css-1vf0ygt]{margin-left:15px;width:100%;}.css-1vf0ygt a,[data-css-1vf0ygt] a{color:#333;}.css-1vf0ygt a:hover,[data-css-1vf0ygt] a:hover{color:#068dfe;}.css-utnqcw,[data-css-utnqcw]{font-weight:bold;font-size:14px;width:100%;display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;justify-content:space-between;-webkit-box-pack:justify;-webkit-justify-content:space-between;}.css-ds0hbm,[data-css-ds0hbm]{color:#4a4a4a;}.css-dg4ww9,[data-css-dg4ww9]{width:100%;margin-top:0;margin-bottom:18px;display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;align-items:center;font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-weight:400;font-size:13px;line-height:1.7;letter-spacing:normal;-webkit-font-smoothing:antialiased;flex-wrap:wrap;-webkit-box-align:center;-webkit-align-items:center;-webkit-box-lines:multiple;-webkit-flex-wrap:wrap;}.css-dg4ww9 > svg:first-of-type,[data-css-dg4ww9] > svg:first-of-type{margin-right:7px;}.css-dg4ww9 > a,[data-css-dg4ww9] > a{text-decoration:none;margin-right:7px;}.css-dg4ww9 > a:last-of-type,[data-css-dg4ww9] > a:last-of-type{text-decoration:none;margin-right:0;}.css-dg4ww9 > *,[data-css-dg4ww9] > *{margin-bottom:13px;}.css-dg4ww9 > a > span:last-of-type,[data-css-dg4ww9] > a > span:last-of-type{font-size:14px;}.css-z9ms26,[data-css-z9ms26]{font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-weight:600;font-size:14px;line-height:1.7;letter-spacing:normal;-webkit-font-smoothing:antialiased;color:#2d2d2d;margin-right:7px;}.css-6uh2e7,[data-css-6uh2e7]{font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-weight:400;font-size:14px;line-height:1.7;letter-spacing:normal;-webkit-font-smoothing:antialiased;color:#939393;margin-right:7px;}.css-1pwtf47,[data-css-1pwtf47]{display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;flex-direction:row;align-items:center;text-decoration:none;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-webkit-box-align:center;-webkit-align-items:center;}.css-t68yd0,[data-css-t68yd0]{display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;position:relative;justify-content:center;align-items:center;width:22px;min-width:22px;height:22px;min-height:22px;background-color:#fff;border-radius:3.1px;border:0;-webkit-box-pack:center;-webkit-justify-content:center;-webkit-box-align:center;-webkit-align-items:center;}.css-t68yd0:hover,[data-css-t68yd0]:hover{background-color:#fff;}.css-1rz3855,[data-css-1rz3855]{border:solid 1px #c2c2c2;border-radius:3.1px;height:22px;width:22px;}.css-i6njnm,[data-css-i6njnm]{font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-weight:400;font-size:13px;line-height:1.7;letter-spacing:normal;-webkit-font-smoothing:antialiased;margin-left:7px;color:#000;}.css-1dp4k20,[data-css-1dp4k20]{height:75px;position:relative;overflow:hidden;}.css-1dp4k20:after,[data-css-1dp4k20]:after{content:" ";position:absolute;bottom:0;left:0;width:100%;height:30px;background:-webkit-linear-gradient(to bottom, rgba(255,255,255,0), #fff 80%); background: -moz-linear-gradient(to bottom, rgba(255,255,255,0), #fff 80%); background: linear-gradient(to bottom, rgba(255,255,255,0), #fff 80%);}.css-ztg526 .topic,[data-css-ztg526] .topic,.css-ztg526 .tool,[data-css-ztg526] .tool{font-weight:normal;background:rgba(6,141,254,0.15);padding:0px 2px;}.css-ztg526 a,[data-css-ztg526] a,.css-ztg526 a:visited,[data-css-ztg526] a:visited{color:#068dfe;text-decoration:underline;cursor:pointer;}.css-ztg526 a:hover,[data-css-ztg526] a:hover,.css-ztg526 a:visited:hover,[data-css-ztg526] a:visited:hover{text-decoration:underline;}.css-ztg526 pre,[data-css-ztg526] pre{white-space:pre-wrap;word-wrap:break-word;background:#fafafa;color:#333;margin:15px 0;font-family:monospace;padding:10px;border-radius:0;}.css-ztg526 code,[data-css-ztg526] code{border-radius:0;background:#fafafa;color:#333;}.css-1srb7t4,[data-css-1srb7t4]{font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-weight:400;font-size:13px;line-height:1.6666666666666667;letter-spacing:normal;-webkit-font-smoothing:antialiased;width:100%;text-align:center;text-decoration:underline;cursor:pointer;color:#333;}.css-1srb7t4:hover,[data-css-1srb7t4]:hover{color:#333;text-decoration:none;}.css-f7loz8,[data-css-f7loz8]{display:grid;grid-template-columns:repeat(auto-fill, minmax(350px, auto));row-gap:20px;column-gap:20px;margin-top:20px;-ms-grid-template-columns:repeat(auto-fill, minmax(350px, auto));-webkit-column-gap:20px;-moz-column-gap:20px;}@media only screen and (max-width: 768px){.css-f7loz8,[data-css-f7loz8]{grid-template-columns:minmax(250px, auto);justify-items:center;-ms-grid-template-columns:minmax(250px, auto);}}.css-pvufaf,[data-css-pvufaf]{font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-weight:400;font-size:13px;line-height:1.7;letter-spacing:normal;-webkit-font-smoothing:antialiased;color:#068dfe;text-decoration:none;cursor:pointer;}.css-r1wkvc,[data-css-r1wkvc]{width:100%;display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;align-items:center;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;}.css-1vusbpb,[data-css-1vusbpb]{width:1140px;padding-top:10px;}.css-1jka35,[data-css-1jka35]{font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-weight:600;font-size:34px;line-height:1.2;letter-spacing:normal;-webkit-font-smoothing:antialiased;padding:0;margin:0;color:#333;margin-top:15px;margin-bottom:15px;display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;align-items:center;flex-wrap:wrap;-webkit-box-align:center;-webkit-align-items:center;-webkit-box-lines:multiple;-webkit-flex-wrap:wrap;}.css-1jka35>span.vs,[data-css-1jka35]>span.vs{font-size:17px;color:#b2b2b2;font-weight:normal;margin-right:6px;margin-left:6px;}@media only screen and (max-width: 812px){.css-1jka35,[data-css-1jka35]{font-size:20px;}.css-1jka35>span.vs,[data-css-1jka35]>span.vs{font-size:14px;margin-right:9px;margin-left:9px;}}.css-26la4,[data-css-26la4]{width:100%;display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;justify-content:center;border-bottom:2px solid #e1e1e1;position:-webkit-sticky; position: sticky;z-index:100;top:0;-webkit-box-pack:center;-webkit-justify-content:center;}.css-1njwzsr,[data-css-1njwzsr]{font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-weight:400;font-size:13px;line-height:1.7;letter-spacing:normal;-webkit-font-smoothing:antialiased;color:#707070;text-decoration:none;display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;align-items:center;flex-direction:column;margin-right:10px;margin-left:10px;margin-bottom:-2px;border-bottom:2px solid transparent;width:100px;-webkit-box-align:center;-webkit-align-items:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;}.css-1njwzsr > svg,[data-css-1njwzsr] > svg{height:34px;}.css-1njwzsr:hover,[data-css-1njwzsr]:hover{color:#068dfe;border-color:#068dfe;}.css-1njwzsr:hover svg path,[data-css-1njwzsr]:hover svg path{fill:#068dfe;stroke:#068dfe;}.css-1njwzsr:focus,[data-css-1njwzsr]:focus{color:#068dfe;border-color:#068dfe;}.css-1njwzsr:focus svg path,[data-css-1njwzsr]:focus svg path{fill:#068dfe;stroke:#068dfe;}.css-8sc56q,[data-css-8sc56q]{width:20px;height:20px;}.css-8sc56q path,[data-css-8sc56q] path{fill:#939393;}.css-1d2ae58,[data-css-1d2ae58]{font-weight:400;font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-size:12px;line-height:1.7;letter-spacing:normal;-webkit-font-smoothing:antialiased;border-radius:6px;height:18px;padding-left:5px;padding-right:5px;margin-left:6px;flex-grow:0;background:#FF7F17;color:#fff;-webkit-flex-grow:0;}.css-1xq3kt1,[data-css-1xq3kt1]{margin-top:-72px;position:-webkit-sticky; position: sticky;top:90px;width:100%;box-shadow:0 2px 4px 0 rgba(194, 194, 194, 0.5);background:#fff;display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;justify-content:center;align-items:center;height:72px;transition:opacity 300ms ease;opacity:0;pointer-events:none;z-index:100;-webkit-box-pack:center;-webkit-justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-webkit-transition:opacity 300ms ease;-moz-transition:opacity 300ms ease;}.css-1xq3kt1>div,[data-css-1xq3kt1]>div{width:1140px;display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;}.css-1xq3kt1>div>div,[data-css-1xq3kt1]>div>div{width:860px;display:grid;grid-template-columns:286.6666666666667px 286.6666666666667px 286.6666666666667px;-ms-grid-template-columns:286.6666666666667px 286.6666666666667px 286.6666666666667px;}.css-3vlw85,[data-css-3vlw85]{position:relative;flex-direction:column;grid-column:auto;grid-row:auto;background:white;padding:30px 20px 30px 20px;border-right:1px solid #e1e1e1;border-bottom:1px solid #e1e1e1;top:0;z-index:inherit;display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-grid-column:auto;-ms-grid-row:auto;}@media only screen and (max-width: 812px){.css-3vlw85,[data-css-3vlw85]{padding:20px 10px 20px 10px;}}.css-1anvsjr,[data-css-1anvsjr]{background:white;border-radius:2px;width:auto;display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;flex-direction:column;align-items:center;position:relative;height:100%;justify-content:flex-start;padding-top:0;padding-bottom:0;border:0;box-shadow:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;-webkit-box-pack:start;-webkit-justify-content:flex-start;}.css-1anvsjr>button,[data-css-1anvsjr]>button{top:16.5px;right:14px;}@media only screen and (max-width: 812px){.css-1anvsjr>button,[data-css-1anvsjr]>button{right:0;}}.css-169quga,[data-css-169quga]{border-radius:2px;width:100%;display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;position:relative;border:1px solid #e1e1e1;padding:6px;box-sizing:border-box;padding-right:36px;}@media only screen and (max-width: 812px){.css-169quga,[data-css-169quga]{border:0;}.css-169quga > div,[data-css-169quga] > div{display:none;}}.css-msbgqg,[data-css-msbgqg]{font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-weight:600;font-size:13px;line-height:1.7;letter-spacing:normal;-webkit-font-smoothing:antialiased;color:#333;display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;align-items:center;text-decoration:none;margin-bottom:0;flex-grow:0;order:0;flex-direction:row;-webkit-box-align:center;-webkit-align-items:center;-webkit-flex-grow:0;-webkit-order:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;}.css-avtieu,[data-css-avtieu]{display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;flex-direction:column;font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-weight:600;font-size:16px;line-height:1.38;letter-spacing:normal;-webkit-font-smoothing:antialiased;color:#333;text-decoration:none;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;}.css-avtieu>span:nth-child(2),[data-css-avtieu]>span:nth-child(2){font-size:13px;color:#ababab;font-weight:400;}@media only screen and (max-width: 812px){.css-avtieu>span:nth-child(1),[data-css-avtieu]>span:nth-child(1){font-size:14px;}.css-avtieu>span:nth-child(2),[data-css-avtieu]>span:nth-child(2){font-size:13px;}}.css-omocl,[data-css-omocl]{margin-left:auto;}.css-pn8ojz,[data-css-pn8ojz]{padding:0;outline:none;border:0;width:20px;height:20px;border-radius:50%;background:#dbdbdb;display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;justify-content:center;align-items:center;position:absolute;cursor:pointer;-webkit-box-pack:center;-webkit-justify-content:center;-webkit-box-align:center;-webkit-align-items:center;}.css-pn8ojz>svg,[data-css-pn8ojz]>svg{width:8px;height:8px;}.css-jaw8ve,[data-css-jaw8ve]{display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;position:relative;margin-bottom:50px;margin-top:25px;}.css-19hrebc,[data-css-19hrebc]{display:grid;width:860px;grid-template-columns:286.6666666666667px 286.6666666666667px 286.6666666666667px;flex-grow:1;-ms-grid-template-columns:286.6666666666667px 286.6666666666667px 286.6666666666667px;-webkit-flex-grow:1;}.css-5k0ecd,[data-css-5k0ecd]{position:relative;flex-direction:column;grid-column:span 3;grid-row:auto;background:white;padding:30px 20px 30px 20px;border-right:0;border-bottom:1px solid #e1e1e1;top:0;z-index:inherit;display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-grid-column:span 3;-ms-grid-row:auto;}@media only screen and (max-width: 812px){.css-5k0ecd,[data-css-5k0ecd]{padding:20px 10px 20px 10px;}}.css-86zjul,[data-css-86zjul]{font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-weight:400;font-size:13px;line-height:1.7;letter-spacing:normal;-webkit-font-smoothing:antialiased;max-width:1170px;display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;align-items:center;justify-content:space-between;cursor:pointer;padding:10px 20px;border:1px solid #e1e1e1;-webkit-box-align:center;-webkit-align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;}@media only screen and (max-width: 480px){.css-86zjul,[data-css-86zjul]{padding:10px;flex-wrap:wrap;margin:0;justify-content:center;border:0;-webkit-box-lines:multiple;-webkit-flex-wrap:wrap;-webkit-box-pack:center;-webkit-justify-content:center;}}.css-1di6wpo,[data-css-1di6wpo]{display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;align-items:center;-webkit-box-align:center;-webkit-align-items:center;}@media only screen and (max-width: 480px){.css-1di6wpo,[data-css-1di6wpo]{width:auto;}}.css-lr10t7,[data-css-lr10t7]{font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-weight:600;font-size:15px;line-height:1.4545454545454546;letter-spacing:normal;-webkit-font-smoothing:antialiased;padding:0;margin:0;color:#333;}.css-4yzqpf,[data-css-4yzqpf]{color:#068dfe;display:block;font-size:12px;font-weight:normal;}.css-st9eg3,[data-css-st9eg3]{height:34px;display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;justify-content:center;align-items:center;border-radius:2px;border:1px solid #068dfe;font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-size:13px;font-weight:400;letter-spacing:0.8px;background-color:#068dfe;color:#fff;text-decoration:none;cursor:pointer;-webkit-font-smoothing:antialiased;padding-top:0;padding-bottom:0;padding-left:16px;padding-right:16px;width:270px;outline:none;-webkit-box-pack:center;-webkit-justify-content:center;-webkit-box-align:center;-webkit-align-items:center;}.css-st9eg3:hover,[data-css-st9eg3]:hover{background-color:rgba(6,141,254,0.8);border-color:rgba(6,141,254,0.79);color:#fff;}@media only screen and (max-width: 480px){.css-st9eg3,[data-css-st9eg3]{margin-top:10px;}}.css-x7ngfe,[data-css-x7ngfe]{background:white;border-radius:2px;width:auto;display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;flex-direction:column;align-items:center;position:relative;height:100%;justify-content:flex-end;padding-top:27px;padding-bottom:30px;border:1px solid #e1e1e1;box-shadow:0 1px 0 0 #e1e1e1;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;-webkit-box-pack:end;-webkit-justify-content:flex-end;}.css-x7ngfe>button,[data-css-x7ngfe]>button{top:10px;right:10px;}@media only screen and (max-width: 812px){.css-x7ngfe>button,[data-css-x7ngfe]>button{right:0;}}.css-ihgrxl,[data-css-ihgrxl]{font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-weight:600;font-size:13px;line-height:1.7;letter-spacing:normal;-webkit-font-smoothing:antialiased;color:#333;display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;align-items:center;text-decoration:none;margin-bottom:24px;flex-grow:1;order:1;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;-webkit-flex-grow:1;-webkit-order:1;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;}.css-124gz8p,[data-css-124gz8p]{display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;flex-direction:column;align-items:center;order:2;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;-webkit-order:2;}.css-1i4hfqi,[data-css-1i4hfqi]{display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;flex-direction:row;align-items:center;justify-content:space-around;flex-wrap:wrap;margin-top:15px;margin-bottom:32px;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-webkit-box-align:center;-webkit-align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-around;-webkit-box-lines:multiple;-webkit-flex-wrap:wrap;}.css-1i4hfqi > button:first-of-type,[data-css-1i4hfqi] > button:first-of-type{margin-right:15px;}.css-2urik6,[data-css-2urik6]{border:0;border-bottom:1px solid #e1e1e1;height:1px;width:90%;margin-top:-10px;margin-bottom:17px;order:3;-webkit-order:3;}.css-oa3yz4 > div:last-of-type,[data-css-oa3yz4] > div:last-of-type{border-bottom:0;}.css-1g9kten,[data-css-1g9kten]{font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-weight:600;font-size:18px;line-height:1.7;letter-spacing:normal;-webkit-font-smoothing:antialiased;color:#333;}@media only screen and (max-width: 480px){.css-1g9kten,[data-css-1g9kten]{padding:10px;border-bottom:none;}}@media only screen and (max-width: 480px){.css-yzfa9h,[data-css-yzfa9h]{padding:0 10px;}}.css-1pz1q9u,[data-css-1pz1q9u]{display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;flex-direction:column;background-color:#fff;border-top:1px solid #e1e1e1;padding:10px;padding-top:26px;padding-bottom:30px;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;}.css-1pz1q9u > div > article ,[data-css-1pz1q9u] > div > article {width:100%;flex-grow:1;margin-bottom:20px;margin-right:0;border:1px solid #e1e1e1;border-bottom:0;box-shadow:0 2px 6px 0 rgba(227, 227, 227, 0.5);-webkit-flex-grow:1;}.css-1pz1q9u > div:last-of-type > article,[data-css-1pz1q9u] > div:last-of-type > article{margin-bottom:0;}@media only screen and (max-width: 480px){.css-1pz1q9u,[data-css-1pz1q9u]{padding:8px;}.css-1pz1q9u > div,[data-css-1pz1q9u] > div{width:100%;}}.css-1rla8dl,[data-css-1rla8dl]{font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-weight:600;font-size:14px;line-height:1.7;letter-spacing:0.23px;-webkit-font-smoothing:antialiased;color:#333;margin-left:14px;margin-bottom:10px;}.css-1rla8dl > span,[data-css-1rla8dl] > span{font-weight:400;}.css-1cqgl9p,[data-css-1cqgl9p]{display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;}.css-1cm2u5n,[data-css-1cm2u5n]{display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;flex-direction:column;align-items:center;margin-left:7px;margin-right:14px;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;}@media only screen and (max-width: 480px){.css-1cm2u5n,[data-css-1cm2u5n]{margin-left:0;margin-right:5px;}}.css-lhxxg6,[data-css-lhxxg6]{width:3px;height:38px;background-color:#e1e1e1;}.css-jyena0,[data-css-jyena0]{height:11px;width:11px;background-color:#c2c2c2;border:2px solid #fff;box-sizing:content-box;border-radius:50%;}.css-s6ccv3,[data-css-s6ccv3]{width:3px;background-color:#e1e1e1;flex-grow:1;-webkit-flex-grow:1;}.css-gyrv08,[data-css-gyrv08]{display:none;}.css-n746ki,[data-css-n746ki]{margin-top:30px;display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;justify-content:center;z-index:1;-webkit-box-pack:center;-webkit-justify-content:center;}.css-1j2w1cg,[data-css-1j2w1cg]{cursor:pointer;text-decoration:none;display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;align-items:center;margin-right:0;-webkit-box-align:center;-webkit-align-items:center;}.css-1j2w1cg > div:last-of-type,[data-css-1j2w1cg] > div:last-of-type{margin-right:0;}.css-1b2ktnx,[data-css-1b2ktnx]{font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-weight:600;font-size:14px;line-height:1.7;letter-spacing:normal;-webkit-font-smoothing:antialiased;color:#2d2d2d;margin-right:7px;margin-left:7px;}.css-103289b,[data-css-103289b]{font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-weight:400;font-size:14px;line-height:1.7;letter-spacing:normal;-webkit-font-smoothing:antialiased;color:#939393;margin-right:3px;margin-left:0;}.css-lnzci0,[data-css-lnzci0]{width:22px;height:22px;border-radius:3.1px;border:1px solid #c2c2c2;}.css-odgfgk,[data-css-odgfgk]{font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-weight:400;font-size:14px;line-height:1.7;letter-spacing:normal;-webkit-font-smoothing:antialiased;color:#939393;margin-right:0;margin-left:3px;}.css-1cuq2n9,[data-css-1cuq2n9]{font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-weight:400;font-size:13px;line-height:1.7;letter-spacing:normal;-webkit-font-smoothing:antialiased;display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;align-items:center;padding:19px;border:0;margin-top:0;flex-direction:row;-webkit-box-align:center;-webkit-align-items:center;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;}.css-1cl6o07,[data-css-1cl6o07]{width:125px;height:auto;margin-right:25px;}.css-172fe00,[data-css-172fe00]{font-size:15px;text-align:left;color:#000;font-weight:900;padding-top:0;max-width:425px;}@media only screen and (max-width: 812px){.css-172fe00,[data-css-172fe00]{max-width:280px;}}.css-1i2jin4,[data-css-1i2jin4]{height:auto;display:inline;justify-content:center;align-items:center;border-radius:2px;border:1px solid #fff;font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-size:15px;font-weight:900;letter-spacing:0;background-color:transparent;color:#068dfe;text-decoration:none;cursor:pointer;-webkit-font-smoothing:antialiased;padding-top:0;padding-bottom:0;padding-left:16px;padding-right:16px;width:-webkit-fit-content; width: -moz-fit-content; width: fit-content;outline:none;text-align:center;padding:0;margin:0;-webkit-box-pack:center;-webkit-justify-content:center;-webkit-box-align:center;-webkit-align-items:center;}.css-1i2jin4:hover,[data-css-1i2jin4]:hover{background-color:rgba(6,141,254,0.8);border-color:#fff;color:#068dfe;background:transparent;cursor:pointer;text-decoration:underline;}.css-1f94cd7,[data-css-1f94cd7]{height:32px;display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;justify-content:center;align-items:center;border-radius:2px;border:1px solid #068dfe;font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-size:13px;font-weight:400;letter-spacing:0.8px;background-color:#068dfe;color:#fff;text-decoration:none;cursor:pointer;-webkit-font-smoothing:antialiased;padding-top:0;padding-bottom:0;padding-left:16px;padding-right:16px;width:auto;outline:none;margin:10px 0 5px;margin-left:auto;-webkit-box-pack:center;-webkit-justify-content:center;-webkit-box-align:center;-webkit-align-items:center;}.css-1f94cd7:hover,[data-css-1f94cd7]:hover{background-color:rgba(6,141,254,0.8);border-color:rgba(6,141,254,0.79);color:#fff;}@media only screen and (max-width: 480px){.css-1f94cd7,[data-css-1f94cd7]{width:100px;}}.css-f8hv9w,[data-css-f8hv9w]{font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-weight:600;font-size:18px;line-height:1.7;letter-spacing:normal;-webkit-font-smoothing:antialiased;}@media only screen and (max-width: 812px){.css-f8hv9w,[data-css-f8hv9w]{font-size:15px;}}.css-1v4wqws,[data-css-1v4wqws]{display:block;flex-direction:none;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:none;}.css-uxqild,[data-css-uxqild]{position:relative;overflow-y:scroll;display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;flex-grow:1;height:270px;max-height:auto;flex-direction:column;flex-wrap:nowrap;-webkit-flex-grow:1;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-webkit-box-lines:nowrap;-webkit-flex-wrap:nowrap;}.css-uxqild::-webkit-scrollbar,[data-css-uxqild]::-webkit-scrollbar{width:4px;}.css-uxqild::-webkit-scrollbar-thumb,[data-css-uxqild]::-webkit-scrollbar-thumb{background:#c2c2c2;border-radius:2.5px;}.css-uxqild > div,[data-css-uxqild] > div{flex-basis:unset;-webkit-flex-basis:unset;}@media only screen and (max-width: 480px){.css-uxqild > div,[data-css-uxqild] > div{flex-basis:unset;-webkit-flex-basis:unset;}}.css-7c9av6,[data-css-7c9av6]{margin:0;padding:0;}.css-6nrkpz,[data-css-6nrkpz]{list-style:none;}.css-p8n7zj,[data-css-p8n7zj]{font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-weight:400;font-size:13px;line-height:1.7;letter-spacing:normal;-webkit-font-smoothing:antialiased;max-width:1170px;display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;align-items:center;justify-content:space-between;cursor:pointer;-webkit-box-align:center;-webkit-align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;}@media only screen and (max-width: 480px){.css-p8n7zj,[data-css-p8n7zj]{padding:10px;flex-wrap:wrap;width:100vw;margin:0;justify-content:center;border:0;-webkit-box-lines:multiple;-webkit-flex-wrap:wrap;-webkit-box-pack:center;-webkit-justify-content:center;}}.css-1uq0dwx,[data-css-1uq0dwx]{display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;}@media only screen and (max-width: 480px){.css-1uq0dwx,[data-css-1uq0dwx]{width:auto;}}.css-1p6gwer,[data-css-1p6gwer]{margin-right:40px;width:40px;height:40px;flex-shrink:0;-webkit-flex-shrink:0;}.css-acfjt6,[data-css-acfjt6]{display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;align-items:center;justify-content:center;height:100%;-webkit-box-align:center;-webkit-align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;}.css-acfjt6 > div > div,[data-css-acfjt6] > div > div{margin-left:45px;}@media only screen and (max-width: 480px){.css-acfjt6,[data-css-acfjt6]{padding:10px;}.css-acfjt6 > div > div,[data-css-acfjt6] > div > div{margin-left:25px;}}.css-w707sh,[data-css-w707sh]{display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;padding:20px;flex-direction:row;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;}.css-w707sh > div:first-of-type,[data-css-w707sh] > div:first-of-type{margin-left:0;}.css-14bxxd1,[data-css-14bxxd1]{display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;align-items:center;justify-content:center;height:100%;-webkit-box-align:center;-webkit-align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;}@media only screen and (max-width: 768px){.css-14bxxd1,[data-css-14bxxd1]{padding:10px;}}.css-1hlwa6q,[data-css-1hlwa6q]{display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;align-items:center;flex-direction:row;text-decoration:none;-webkit-box-align:center;-webkit-align-items:center;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;}@media only screen and (max-width: 768px){.css-1hlwa6q,[data-css-1hlwa6q]{flex-direction:column;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;}}.css-f9zb2m,[data-css-f9zb2m]{height:50px;width:50px;}@media only screen and (max-width: 768px){.css-f9zb2m,[data-css-f9zb2m]{height:32px;width:32px;}}.css-1wdjt5z,[data-css-1wdjt5z]{margin-left:15px;}.css-1wdjt5z > div > div,[data-css-1wdjt5z] > div > div{margin-right:20px;}@media only screen and (max-width: 768px){.css-1wdjt5z,[data-css-1wdjt5z]{margin-top:15px;}.css-1wdjt5z > div > div,[data-css-1wdjt5z] > div > div{margin-right:25px;}}.css-1bshyi4,[data-css-1bshyi4]{font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-weight:400;font-size:13px;line-height:1.7;letter-spacing:normal;-webkit-font-smoothing:antialiased;text-align:center;fontsize:14px;color:#c2c2c2;font-style:italic;}.css-1ke07jm,[data-css-1ke07jm]{font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-weight:400;font-size:13px;line-height:1.7;letter-spacing:normal;-webkit-font-smoothing:antialiased;max-width:1170px;display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;align-items:center;justify-content:space-between;cursor:pointer;padding:0px;border:none;-webkit-box-align:center;-webkit-align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;}@media only screen and (max-width: 480px){.css-1ke07jm,[data-css-1ke07jm]{padding:10px;flex-wrap:wrap;margin:0;justify-content:center;border:0;-webkit-box-lines:multiple;-webkit-flex-wrap:wrap;-webkit-box-pack:center;-webkit-justify-content:center;}}.css-4pt7vy,[data-css-4pt7vy]{position:relative;overflow-y:hidden;display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;flex-grow:1;height:270px;max-height:auto;flex-direction:column;flex-wrap:nowrap;-webkit-flex-grow:1;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-webkit-box-lines:nowrap;-webkit-flex-wrap:nowrap;}.css-4pt7vy::-webkit-scrollbar,[data-css-4pt7vy]::-webkit-scrollbar{width:4px;}.css-4pt7vy::-webkit-scrollbar-thumb,[data-css-4pt7vy]::-webkit-scrollbar-thumb{background:#c2c2c2;border-radius:2.5px;}.css-4pt7vy::after,[data-css-4pt7vy]::after{content:"";position:absolute;bottom:0;left:0;height:100px;width:100%;background:-webkit-linear-gradient(top, rgba(255,255,255,.3), rgba(255,255,255, 1)); background: -moz-linear-gradient(top, rgba(255,255,255,.3), rgba(255,255,255, 1)); background: linear-gradient(top, rgba(255,255,255,.3), rgba(255,255,255, 1));}.css-4pt7vy > div,[data-css-4pt7vy] > div{flex-basis:unset;-webkit-flex-basis:unset;}@media only screen and (max-width: 480px){.css-4pt7vy > div,[data-css-4pt7vy] > div{flex-basis:unset;-webkit-flex-basis:unset;}}.css-mta8ak,[data-css-mta8ak]{display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;align-items:center;margin-bottom:15px;flex-shrink:0;-webkit-box-align:center;-webkit-align-items:center;-webkit-flex-shrink:0;}.css-13fg6qi,[data-css-13fg6qi]{display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;position:relative;justify-content:center;align-items:center;width:32px;min-width:32px;height:32px;min-height:32px;background-color:#fff;border-radius:3.1px;border:solid 0.8px #c2c2c2;-webkit-box-pack:center;-webkit-justify-content:center;-webkit-box-align:center;-webkit-align-items:center;}.css-13fg6qi:hover,[data-css-13fg6qi]:hover{background-color:#fff;}.css-4lwqz5,[data-css-4lwqz5]{border:0;border-radius:0;height:24px;width:24px;}.css-cn7d1w,[data-css-cn7d1w]{font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-weight:400;font-size:13px;line-height:1.7;letter-spacing:normal;-webkit-font-smoothing:antialiased;display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;align-items:center;padding:19px;border:1px solid #e9e9e9;margin-top:33px;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;}.css-1fj3l7d,[data-css-1fj3l7d]{width:152px;height:auto;margin-right:0;}.css-i272tr,[data-css-i272tr]{font-size:15px;text-align:center;color:#000;font-weight:900;padding-top:15px;max-width:auto;}@media only screen and (max-width: 812px){.css-i272tr,[data-css-i272tr]{max-width:280px;}}.css-56ijgy,[data-css-56ijgy]{height:auto;display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;justify-content:center;align-items:center;border-radius:2px;border:1px solid #fff;font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-size:13px;font-weight:900;letter-spacing:0;background-color:transparent;color:#068dfe;text-decoration:none;cursor:pointer;-webkit-font-smoothing:antialiased;padding-top:0;padding-bottom:0;padding-left:16px;padding-right:16px;width:auto;outline:none;text-align:center;padding:0;margin:10px 0;-webkit-box-pack:center;-webkit-justify-content:center;-webkit-box-align:center;-webkit-align-items:center;}.css-56ijgy:hover,[data-css-56ijgy]:hover{background-color:rgba(6,141,254,0.8);border-color:#fff;color:#068dfe;background:transparent;cursor:pointer;text-decoration:underline;}.css-1l7t0dr,[data-css-1l7t0dr]{height:32px;display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;justify-content:center;align-items:center;border-radius:2px;border:1px solid #068dfe;font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-size:13px;font-weight:400;letter-spacing:0.8px;background-color:#068dfe;color:#fff;text-decoration:none;cursor:pointer;-webkit-font-smoothing:antialiased;padding-top:0;padding-bottom:0;padding-left:16px;padding-right:16px;width:100%;outline:none;margin:10px 0 5px;margin-left:0;-webkit-box-pack:center;-webkit-justify-content:center;-webkit-box-align:center;-webkit-align-items:center;}.css-1l7t0dr:hover,[data-css-1l7t0dr]:hover{background-color:rgba(6,141,254,0.8);border-color:rgba(6,141,254,0.79);color:#fff;}@media only screen and (max-width: 480px){.css-1l7t0dr,[data-css-1l7t0dr]{width:100px;}}.css-ptavxb,[data-css-ptavxb]{font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-weight:600;font-size:18px;line-height:1.7;letter-spacing:normal;-webkit-font-smoothing:antialiased;color:#333;}.css-p223ph,[data-css-p223ph]{width:260px;margin-left:20px;}.css-i5u9v5,[data-css-i5u9v5]{margin:20px 0;display:grid;gap:15px;grid-template:repeat(1, 1fr) / repeat(2, 1fr);-ms-grid-template:repeat(1, 1fr) / repeat(2, 1fr);}@media only screen and (max-width: 480px){.css-i5u9v5,[data-css-i5u9v5]{grid-template:repeat(1, 1fr) / repeat(1, 1fr);gap:15px 0;padding:0 15px;-ms-grid-template:repeat(1, 1fr) / repeat(1, 1fr);}}.css-1ewdw7x,[data-css-1ewdw7x]{background:#fff;position:relative;border:1px solid #e1e1e1;border-radius:4px;margin:10px 0 3px 0;padding:15px 20px;display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;flex-direction:column;justify-content:flex-end;font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-webkit-box-pack:end;-webkit-justify-content:flex-end;}.css-ih8ay1,[data-css-ih8ay1]{order:1;flex-grow:1;-webkit-order:1;-webkit-flex-grow:1;}.css-17niv7d,[data-css-17niv7d]{font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-weight:600;font-size:15px;line-height:1.7;letter-spacing:normal;-webkit-font-smoothing:antialiased;color:#333;margin-bottom:8px;margin:5px 0 0 0;}.css-17niv7d a,[data-css-17niv7d] a, .css-17niv7d a:hover, [data-css-17niv7d] a:hover, .css-17niv7d a:visited, [data-css-17niv7d] a:visited{color:#333;text-decoration:none;}@media only screen and (max-width: 480px){.css-17niv7d,[data-css-17niv7d]{font-size:18px;}}.css-6mpj06,[data-css-6mpj06]{color:#707070;}.css-6mpj06:hover,[data-css-6mpj06]:hover{color:#707070;text-decoration:underline;}.css-nio1yx,[data-css-nio1yx]{display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;align-items:center;margin:5px 0;-webkit-box-align:center;-webkit-align-items:center;}.css-nio1yx>svg,[data-css-nio1yx]>svg{margin-right:3px;}@media only screen and (max-width: 480px){.css-nio1yx,[data-css-nio1yx]{font-size:13px;}}.css-ak2nbp,[data-css-ak2nbp]{font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-weight:400;font-size:13px;line-height:1.7;letter-spacing:normal;-webkit-font-smoothing:antialiased;color:#707070;}.css-ak2nbp a,[data-css-ak2nbp] a, .css-ak2nbp a:hover, [data-css-ak2nbp] a:hover, .css-ak2nbp a:visited, [data-css-ak2nbp] a:visited{color:#707070;text-decoration:none;}.css-9yycaw,[data-css-9yycaw]{order:2;margin:10px 0;-webkit-order:2;}.css-leu1cr,[data-css-leu1cr]{height:32px;display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;justify-content:center;align-items:center;border-radius:2px;border:1px solid #068dfe;font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-size:13px;font-weight:400;letter-spacing:0.8px;background-color:#068dfe;color:#fff;text-decoration:none;cursor:pointer;-webkit-font-smoothing:antialiased;padding-top:0;padding-bottom:0;padding-left:16px;padding-right:16px;-webkit-box-pack:center;-webkit-justify-content:center;-webkit-box-align:center;-webkit-align-items:center;}.css-leu1cr:hover,[data-css-leu1cr]:hover{background-color:rgba(6,141,254,0.8);border-color:rgba(6,141,254,0.79);color:#fff;}.css-156fhm0,[data-css-156fhm0]{display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;margin:15px 0 0 0;align-items:center;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;}.css-12alag6,[data-css-12alag6]{display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;align-items:center;-webkit-box-align:center;-webkit-align-items:center;}.css-10hy8cb,[data-css-10hy8cb]{display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;align-items:center;margin-right:4px;-webkit-box-align:center;-webkit-align-items:center;}.css-10hy8cb a,[data-css-10hy8cb] a{margin-right:8px;}.css-vbbua8,[data-css-vbbua8]{display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;justify-content:flex-end;align-items:center;min-width:165px;color:#707070;-webkit-box-pack:end;-webkit-justify-content:flex-end;-webkit-box-align:center;-webkit-align-items:center;}@media only screen and (max-width: 480px){.css-vbbua8,[data-css-vbbua8]{margin-top:10px;justify-content:flex-start;-webkit-box-pack:start;-webkit-justify-content:flex-start;}}.css-1r3kfuo,[data-css-1r3kfuo]{font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-weight:600;font-size:13px;line-height:1.7;letter-spacing:normal;-webkit-font-smoothing:antialiased;margin-left:5px;margin-right:3px;}.css-wdkc2c,[data-css-wdkc2c]{font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-weight:400;font-size:13px;line-height:1.7;letter-spacing:normal;-webkit-font-smoothing:antialiased;}.css-1iv3e1o,[data-css-1iv3e1o]{font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-weight:400;font-size:13px;line-height:1.7;letter-spacing:normal;-webkit-font-smoothing:antialiased;color:#707070;display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;flex-direction:column;margin-left:0;margin-right:0;width:100%;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;}.css-1iv3e1o strong,[data-css-1iv3e1o] strong{color:#333;}.css-1iv3e1o:last-child > div,[data-css-1iv3e1o]:last-child > div{margin:0 auto;max-width:225px;}@media only screen and (max-width: 480px){.css-1iv3e1o,[data-css-1iv3e1o]{padding:10px;box-sizing:border-box;}}@media only screen and (max-width: 812px){.css-1iv3e1o > div,[data-css-1iv3e1o] > div{display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;justify-content:center;-webkit-box-pack:center;-webkit-justify-content:center;}}@media only screen and (max-width: 768px){.css-1iv3e1o:last-child > div,[data-css-1iv3e1o]:last-child > div{margin:0 auto;max-width:225px;}}.css-1ob9em9,[data-css-1ob9em9]{max-width:225px;margin:0 auto;width:100%;}.css-1ob9em9 > button,[data-css-1ob9em9] > button{width:100%;margin:auto;padding-left:16px;padding-right:16px;}.css-1mpii3w,[data-css-1mpii3w]{height:auto;display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;justify-content:center;align-items:center;border-radius:2px;border:1px solid #f87a46;font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-size:13px;font-weight:400;letter-spacing:0.8px;background-color:#f87a46;color:#fff;text-decoration:none;cursor:pointer;-webkit-font-smoothing:antialiased;padding-top:0;padding-bottom:0;padding-left:16px;padding-right:16px;width:auto;outline:none;line-height:20px;min-height:32px;-webkit-box-pack:center;-webkit-justify-content:center;-webkit-box-align:center;-webkit-align-items:center;}.css-1mpii3w:hover,[data-css-1mpii3w]:hover{background-color:rgba(248,122,70,0.8);border-color:rgba(248,122,70,0.8);color:#fff;}.css-fa6ece,[data-css-fa6ece]{display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;align-items:center;margin:0;position:inherit;-webkit-box-align:center;-webkit-align-items:center;}.css-fa6ece h3,[data-css-fa6ece] h3{font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-weight:600;font-size:18px;line-height:18px;letter-spacing:normal;-webkit-font-smoothing:antialiased;color:#333;}.css-fa6ece>div,[data-css-fa6ece]>div{margin-left:12px;}.css-vbfwyr,[data-css-vbfwyr]{display:grid;margin-bottom:26px;grid-template-columns:1fr 1fr;grid-column-gap:20px;grid-row-gap:20px;margin-top:21px;-ms-grid-template-columns:1fr 1fr;-ms-grid-column-gap:20px;-ms-grid-row-gap:20px;}@media only screen and (max-width: 480px){.css-vbfwyr,[data-css-vbfwyr]{grid-template-columns:1fr;-ms-grid-template-columns:1fr;}}.css-1gtwocl,[data-css-1gtwocl]{position:relative;box-sizing:border-box;padding:24px;border:1px solid #e1e1e1;border-radius:4px;display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;flex-direction:column;background:#fff;padding-top:24px;height:272px;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;}@media only screen and (max-width: 1199px){.css-1gtwocl,[data-css-1gtwocl]{height:288px;}}.css-1kcdhc3,[data-css-1kcdhc3]{max-height:500px;flex:1;overflow-y:hidden;-webkit-flex:1;}@media only screen and (max-width: 1199px){.css-1kcdhc3,[data-css-1kcdhc3]{max-height:280px;}}.css-cuzej8,[data-css-cuzej8]{font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-weight:600;font-size:15px;line-height:1.7;letter-spacing:normal;-webkit-font-smoothing:antialiased;color:#333;margin-bottom:8px;}.css-cuzej8 a,[data-css-cuzej8] a, .css-cuzej8 a:hover, [data-css-cuzej8] a:hover, .css-cuzej8 a:visited, [data-css-cuzej8] a:visited{color:#333;text-decoration:none;}.css-12h9n7t,[data-css-12h9n7t]{font-size:19px;display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;align-items:center;-webkit-box-align:center;-webkit-align-items:center;}.css-12h9n7t a,[data-css-12h9n7t] a{min-height:64px;}.css-m2gwm,[data-css-m2gwm]{font-size:11px;font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;letter-spacing:0.3px;color:#a1a1a1;}.css-14kdfdp,[data-css-14kdfdp]{margin:10px 0 10px 0;display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;align-items:center;font-size:11px;font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;letter-spacing:0.3px;-webkit-box-align:center;-webkit-align-items:center;}.css-14kdfdp p,[data-css-14kdfdp] p{margin:0;font-weight:600;}.css-lscypq,[data-css-lscypq]{display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;padding-top:16px;align-items:center;justify-content:space-between;border-top:1px solid #e1e1e1;-webkit-box-align:center;-webkit-align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;}.css-maw68b,[data-css-maw68b]{display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;justify-content:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-webkit-box-align:center;-webkit-align-items:center;}.css-maw68b .views,[data-css-maw68b] .views,.css-maw68b .favourites,[data-css-maw68b] .favourites{display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;justify-content:center;align-items:center;margin-right:16px;font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-weight:400;font-size:13px;line-height:1.7;letter-spacing:normal;-webkit-font-smoothing:antialiased;color:#707070;-webkit-box-pack:center;-webkit-justify-content:center;-webkit-box-align:center;-webkit-align-items:center;}.css-maw68b .views svg,[data-css-maw68b] .views svg,.css-maw68b .favourites svg,[data-css-maw68b] .favourites svg{margin-right:6px;}@media only screen and (max-width: 480px){.css-maw68b .views,[data-css-maw68b] .views,.css-maw68b .favourites,[data-css-maw68b] .favourites{margin-right:6px;}}.css-13nf4of,[data-css-13nf4of]{margin:15px 0;border-top:solid 1px #e1e1e1;border-bottom:solid 1px #e1e1e1;padding:15px 0;}.css-13nf4of a,[data-css-13nf4of] a{color:#333;text-decoration:underline;}.css-xd3exe,[data-css-xd3exe]{margin-right:5px;}.css-pitycd,[data-css-pitycd]{border:solid 1px #e5e5e5;border-radius:4px;width:38px;height:38px;margin-right:11px;margin-bottom:0;background-image:url(https://img.stackshare.io/service/1075/celery.png);background-repeat:none;background-size:contain;}.css-19iq1g0,[data-css-19iq1g0]{border:solid 1px #e5e5e5;border-radius:4px;width:84px;height:84px;margin-right:0;margin-bottom:5px;background-image:url(https://img.stackshare.io/service/1075/celery.png);background-repeat:none;background-size:contain;}.css-174u468,[data-css-174u468]{border:solid 1px #e5e5e5;border-radius:4px;width:38px;height:38px;margin-right:11px;margin-bottom:0;background-image:url(https://img.stackshare.io/service/395/amazon-sqs.png);background-repeat:none;background-size:contain;}.css-1sn2rjy,[data-css-1sn2rjy]{border:solid 1px #e5e5e5;border-radius:4px;width:84px;height:84px;margin-right:0;margin-bottom:5px;background-image:url(https://img.stackshare.io/service/395/amazon-sqs.png);background-repeat:none;background-size:contain;}.css-1ivvuvh,[data-css-1ivvuvh]{border:solid 1px #e5e5e5;border-radius:4px;width:38px;height:38px;margin-right:11px;margin-bottom:0;background-image:url(https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg);background-repeat:none;background-size:contain;}.css-70bqh8,[data-css-70bqh8]{border:solid 1px #e5e5e5;border-radius:4px;width:84px;height:84px;margin-right:0;margin-bottom:5px;background-image:url(https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg);background-repeat:none;background-size:contain;}</style> <div id="Stackup-react-component-f64f6f22-1d31-4ffb-b32b-766de043cde6" data-ssr="true" ><div class="css-r1wkvc"><div class="css-1vusbpb"><div class="css-4gnhqq"><div data-testid="breadcrumbs" class="css-1ag7ge9"><a href="/categories" class="css-ld8qhm">Home</a><div class="css-11b98zt"></div><a href="/application_and_data" class="css-ld8qhm">Application and Data</a><div class="css-11b98zt"></div><a href="/data-stores" class="css-ld8qhm">Data Stores</a><div class="css-11b98zt"></div><a href="/message-queue" class="css-ld8qhm">Message Queue</a></div><div class="css-vbbua8"><svg xmlns="http://www.w3.org/2000/svg" width="11" height="11" viewBox="0 0 11 11"><g fill="#0997FE"><path d="M5.453 0A5.459 5.459 0 0 0 0 5.453a5.459 5.459 0 0 0 5.453 5.453 5.459 5.459 0 0 0 5.453-5.453A5.459 5.459 0 0 0 5.453 0zm0 9.745A4.298 4.298 0 0 1 1.16 5.453 4.298 4.298 0 0 1 5.453 1.16a4.298 4.298 0 0 1 4.293 4.293 4.298 4.298 0 0 1-4.293 4.292z"></path><path d="M8.295 5.284h-2.45V2.338a.449.449 0 0 0-.899 0v3.395c0 .248.201.45.45.45h2.899a.449.449 0 0 0 0-.899z"></path></g></svg><div data-testid="updatedAt" class="css-1r3kfuo">UPDATED</div><div data-testid="updatedAtDate" class="css-wdkc2c">Jun 16, 2022</div></div></div><h1 class="css-1jka35"><span data-testid="stackupTitle">Amazon SQS</span><span class="vs"> vs </span><span data-testid="stackupTitle">Celery</span><span class="vs"> vs </span><span data-testid="stackupTitle">RabbitMQ</span></h1></div><div class="css-26la4"><div class="css-yawzxl"><div data-testid="navigationBar" class="css-1aswmtz"><div class="css-qrny8b"><nav class="css-1176rj6"><a href="#decisions" class="css-1njwzsr"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 34 34"><g fill="#999" stroke="#999" stroke-width=".2"><path fill-rule="evenodd" d="M21.47 23.475V22.34h-2.46a.537.537 0 0 0-.528.531v2.124l-3.14.008v-5.641a.537.537 0 0 0-.527-.533h-3.287l.03 1.163L8.84 17.22l2.689-2.78v1.167h2.88l.543.014c1.743.068 3.207 1.39 3.482 3.142l.079.356h2.957l-.03-1.197 2.718 2.776-2.688 2.778zm-7.463-11.307l2.765-3.313.075-.004 2.693 3.318h-.585c-.602 0-.602.527-.602.78v3.49c-.773-1.02-1.793-1.587-3.06-1.688v-1.865c0-.205.002-.4-.159-.56-.156-.157-.357-.157-.443-.157h-.684zm10.754 7.942l-2.72-2.78a.834.834 0 0 0-.908-.18.832.832 0 0 0-.506.77v.355h-1.43c-.007-.028-.02-.054-.026-.083a.43.43 0 0 0 .025-.144v-5.035h.685c.45 0 .617-.258.67-.37.051-.11.14-.407-.148-.75l-2.905-3.58a.907.907 0 0 0-1.374.001l-2.983 3.575c-.29.35-.2.645-.148.756.052.11.222.368.67.368h.787v1.75h-2.08v-.323a.83.83 0 0 0-.506-.77.828.828 0 0 0-.908.182l-2.72 2.778a.847.847 0 0 0 .001 1.176l2.716 2.772a.82.82 0 0 0 .91.189.836.836 0 0 0 .509-.772v-.324H14.5v5.331c0 .461.37.836.827.836h3.17a.832.832 0 0 0 .827-.836v-1.82h1.302v.293c0 .336.197.638.503.771a.833.833 0 0 0 .912-.181l2.719-2.778a.844.844 0 0 0 0-1.177z"></path></g></svg><div class="css-zkwjas">Decisions<!-- --> </div></a><a href="#pros" class="css-1njwzsr"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 30"><path fill="#A1A1A1" stroke="#A1A1A1" stroke-width=".2" d="M23.42 15.403c.855-.864.59-2.612-.892-2.612l-3.903.002c.148-.837.363-2.226.354-2.357-.082-1.242-.863-2.754-.896-2.815-.143-.27-.862-.634-1.586-.478-.935.203-1.03.808-1.027.975 0 0 .04 1.655.044 2.097-.447.996-1.99 3.613-2.457 3.815a.706.706 0 0 0-.37-.105H7.755A.76.76 0 0 0 7 14.69v6.908a.72.72 0 0 0 .71.665h4.43a.718.718 0 0 0 .711-.722v-.23s.165-.012.24.037c.285.183.636.414 1.095.414h6.61c2.47 0 2.205-2.224 1.98-2.527.417-.46.675-1.273.323-1.915.27-.29.746-1.09.32-1.917zM11.986 21.54H7.71v-6.894h4.278v6.894zm10.28-6.196l-.041.17c1.138.329.532 1.659-.284 1.745l-.04.17c1.091.282.57 1.652-.285 1.745l-.04.17c.891.149.675 1.691-.675 1.691l-6.722.003c-.475 0-.907-.549-1.257-.549h-.304v-5.306c.38-.239.846-.549 1.106-.772.49-.424 2.497-3.71 2.497-4.122 0-.412-.045-2.191-.045-2.191s.394-.514 1.272-.14c0 0 .74 1.406.815 2.526 0 0-.333 2.307-.512 3.03h4.66c1.146.002.927 1.659-.146 1.83z"></path></svg><div class="css-zkwjas">Pros &amp; Cons<!-- --> </div></a><a href="#stats" class="css-1njwzsr"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 30"><g fill="none" fill-rule="evenodd" stroke="#A1A1A1"><path fill="#A1A1A1" fill-rule="nonzero" stroke-width=".3" d="M20.876 7.374a.352.352 0 0 0-.105-.27.361.361 0 0 0-.273-.103L20.481 7h-2.177c-.2 0-.36.16-.36.355 0 .196.16.356.36.356h1.344l-3.558 3.512-1.341-1.325a.362.362 0 0 0-.51 0L7.77 16.285a.352.352 0 0 0 0 .502.361.361 0 0 0 .51 0l6.214-6.135 1.342 1.324c.14.139.368.139.509 0l3.812-3.763v1.201c0 .196.161.355.36.355.199 0 .36-.159.36-.355V7.391l-.001-.017z"></path><path d="M21.952 22.761v-8a1 1 0 0 0-1-1h-1.214a1 1 0 0 0-1 1v8m-2.143 0v-4.357a1 1 0 0 0-1-1h-1.214a1 1 0 0 0-1 1v4.357m-2.143 0v-2.214a1 1 0 0 0-1-1H9.024a1 1 0 0 0-1 1v2.214"></path></g></svg><div class="css-zkwjas">Stats<!-- --> </div></a><a href="#description" class="css-1njwzsr"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 30"><g fill="#A1A1A1" stroke="#A1A1A1" stroke-width=".2"><path d="M20.35 23H8.95a.933.933 0 0 1-.95-.95V6.95c0-.538.412-.95.95-.95h8.677L21.3 9.673V22.05c0 .538-.412.95-.95.95zm.317-13.073l-2.85-2.85v2.09c0 .19.126.316.316.316h2.534v.634h-2.534a.933.933 0 0 1-.95-.95V6.633H8.95c-.19 0-.317.127-.317.317v15.1c0 .19.127.317.317.317h11.4c.19 0 .317-.127.317-.317V9.927z"></path><path d="M11.87 18.45h5.23a.5.5 0 1 1 0 1h-5.23a.5.5 0 1 1 0-1zm5.43-2.305v-3.66l-2.7-1.35-2.7 1.35v3.66l2.7 1.35 2.7-1.35zm-2.7-2.34l-.75-.45 1.8-1.02.75.36-1.8 1.11zm.39-1.8l-1.71.99-.48-.3 1.8-.9.39.21zm-2.49 1.2l1.8 1.11v1.74h.6v-1.74l1.8-1.11v2.58l-2.1 1.05-2.1-1.05v-2.58z"></path></g></svg><div class="css-zkwjas">Description<!-- --> </div></a><a href="#jobs" class="css-1njwzsr"><svg class="css-8sc56q" id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 30"><g><path class="st0" d="M.7 16.8h28.6v1.8H.7v-1.8zm27.7.9l-.9.9v-1.8l.9.9z"></path><path class="st0" d="M4.6 6.1h20.7c2.2 0 3.9 1.8 3.9 3.9v13.6c0 2.2-1.8 3.9-3.9 3.9H4.6c-2.2 0-3.9-1.8-3.9-3.9V10c0-2.2 1.8-3.9 3.9-3.9zm0 1.8c-1.2 0-2.1 1-2.1 2.1v13.6c0 1.2 1 2.1 2.1 2.1h20.7c1.2 0 2.1-1 2.1-2.1V10c0-1.2-1-2.1-2.1-2.1H4.6z"></path><path class="st0" d="M10.5 16.8v4.3c0 1.1.9 2 2 2h5c1.1 0 2-.9 2-2v-4.3h-1.8v4.3c0 .1-.1.2-.2.2h-5c-.1 0-.2-.1-.2-.2v-4.3h-1.8zM8.8 7V4.5c0-1.1.9-2 2-2h8.6c1.1 0 2 .9 2 2V7h-1.8V4.5c0-.1-.1-.2-.2-.2h-8.6c-.1 0-.2.1-.2.2V7H8.8z"></path></g></svg><div class="css-zkwjas">Jobs<!-- --> <span class="css-1d2ae58">15</span></div></a><a href="#alternatives" class="css-1njwzsr"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 30"><g fill="#A1A1A1" stroke="#A1A1A1" stroke-width=".2"><path d="M13.626 18.015l.511-.81a.405.405 0 0 0-.136-.565.422.422 0 0 0-.576.133l-.51.81c-.927 1.469-2.25 2.312-3.632 2.312H7.416a.412.412 0 1 0 0 .823h1.87c1.68-.007 3.26-.99 4.34-2.703zm9.944-7.882l-2.023-1.99a.42.42 0 0 0-.59 0 .403.403 0 0 0 0 .578l1.316 1.291h-1.939c-1.676 0-3.26.984-4.34 2.697l-.314.498a.405.405 0 0 0 .137.566.42.42 0 0 0 .572-.134l.313-.499c.927-1.468 2.249-2.308 3.632-2.308h1.936l-1.315 1.291a.403.403 0 0 0 0 .579c.082.08.188.12.297.12a.42.42 0 0 0 .296-.12l2.027-1.99a.406.406 0 0 0-.003-.58zm-.862.34v-.04l.02.02-.02.02z"></path><path d="M20.954 22.581c.082.08.188.12.297.12a.42.42 0 0 0 .296-.12l2.027-1.99a.403.403 0 0 0 0-.58l-2.027-1.986a.42.42 0 0 0-.59 0 .403.403 0 0 0 0 .578l1.316 1.292h-1.877c-1.38 0-2.706-.843-3.632-2.312L13.69 12.71c-1.08-1.716-2.664-2.697-4.34-2.697H7.416a.412.412 0 1 0 0 .823h1.931c1.38 0 2.705.843 3.632 2.309l3.073 4.874c1.08 1.716 2.664 2.7 4.34 2.7h1.877l-1.315 1.291a.4.4 0 0 0 0 .572zm1.754-2.265l.02.02-.02.02v-.04z"></path></g></svg><div class="css-zkwjas">Alternatives<!-- --> </div></a><a href="#integrations" class="css-1njwzsr"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 30"><g fill="#A1A1A1" stroke="#A1A1A1"><path stroke-width=".4" d="M19.474 8.03a6.42 6.42 0 0 0-4.478 1.827 6.42 6.42 0 0 0-4.478-1.827C6.924 8.03 4 11.018 4 14.691c0 3.673 2.924 6.661 6.518 6.661a6.42 6.42 0 0 0 4.478-1.827 6.419 6.419 0 0 0 4.477 1.827c3.594 0 6.518-2.988 6.518-6.66 0-3.674-2.924-6.662-6.517-6.662zm-8.956 12.724c-3.272 0-5.933-2.72-5.933-6.063 0-3.343 2.662-6.063 5.933-6.063 1.575 0 3.005.635 4.068 1.663a6.717 6.717 0 0 0-1.63 4.4c0 1.686.616 3.227 1.63 4.401a5.84 5.84 0 0 1-4.068 1.662zm3.023-6.063a6.11 6.11 0 0 1 1.455-3.965 6.11 6.11 0 0 1 1.454 3.965 6.11 6.11 0 0 1-1.454 3.965 6.108 6.108 0 0 1-1.455-3.965zm5.933 6.063a5.838 5.838 0 0 1-4.07-1.662 6.718 6.718 0 0 0 1.632-4.401 6.717 6.717 0 0 0-1.631-4.4 5.838 5.838 0 0 1 4.069-1.663c3.27 0 5.932 2.72 5.932 6.063 0 3.342-2.661 6.063-5.932 6.063z"></path><path stroke-width=".2" d="M15.384 11.887h-.866v-.299h.866zm-.786 5.608h.865v.299h-.865zm1.384-4.548h-1.903v-.3h1.903zm.183.959h-2.421v-.299h2.421zm.085.685v.299h-2.509v-.299zm-2.384.978h2.258v.299h-2.258zm.213.954h1.72v.299h-1.72v-.299z"></path></g></svg><div class="css-zkwjas">Integrations<!-- --> </div></a><a href="#posts" class="css-1njwzsr"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14"><path fill="#A1A1A1" stroke="#999" stroke-width=".2" d="M13.093.906a3.087 3.087 0 0 0-4.37 0L.711 8.916a.4.4 0 0 0-.113.23l-.594 4.398a.4.4 0 0 0 .113.337c.075.074.18.119.284.119.018 0 .035 0 .053-.003l2.65-.358a.403.403 0 0 0-.108-.8l-2.124.287.415-3.067 3.227 3.228a.395.395 0 0 0 .567 0l8.012-8.01A3.07 3.07 0 0 0 14 3.09a3.06 3.06 0 0 0-.907-2.184zm-4.215.985l1.346 1.345-7.312 7.312-1.345-1.345L8.878 1.89zM4.801 12.434l-1.316-1.316 7.311-7.312 1.316 1.316L4.8 12.434zm7.872-7.888l-3.219-3.22a2.278 2.278 0 0 1 1.456-.52 2.28 2.28 0 0 1 2.285 2.285c0 .54-.185 1.047-.522 1.456z"></path></svg><div class="css-zkwjas">Blog Posts<!-- --> </div></a></nav><div class="css-nil"></div></div></div></div></div><div class="css-1xq3kt1"><div><div><div style="border:0;padding:0 10px 0 10px" class="css-3vlw85"><div class="css-1anvsjr"><div class="css-169quga"><a href="/amazon-sqs" class="css-msbgqg"><div class="css-174u468"></div><div class="css-avtieu"><span>Amazon SQS</span><span>3K<!-- --> Stacks</span></div></a><div class="css-omocl"></div></div><button data-testid="removeTool" class="css-pn8ojz"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12"><g fill="#FFF" fill-rule="evenodd" stroke="#FFF" stroke-width=".6"><rect width="15.543" height="1.137" x="-1.805" y="5.439" rx=".569" transform="rotate(45 5.967 6.105)"></rect><rect width="15.543" height="1.137" x="-1.805" y="5.3" rx=".569" transform="rotate(135 5.967 5.967)"></rect></g></svg></button></div></div><div style="border:0;padding:0 10px 0 10px" class="css-3vlw85"><div class="css-1anvsjr"><div class="css-169quga"><a href="/celery" class="css-msbgqg"><div class="css-pitycd"></div><div class="css-avtieu"><span>Celery</span><span>1.5K<!-- --> Stacks</span></div></a><div class="css-omocl"></div></div><button data-testid="removeTool" class="css-pn8ojz"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12"><g fill="#FFF" fill-rule="evenodd" stroke="#FFF" stroke-width=".6"><rect width="15.543" height="1.137" x="-1.805" y="5.439" rx=".569" transform="rotate(45 5.967 6.105)"></rect><rect width="15.543" height="1.137" x="-1.805" y="5.3" rx=".569" transform="rotate(135 5.967 5.967)"></rect></g></svg></button></div></div><div style="border:0;padding:0 10px 0 10px" class="css-3vlw85"><div class="css-1anvsjr"><div class="css-169quga"><a href="/rabbitmq" class="css-msbgqg"><div class="css-1ivvuvh"></div><div class="css-avtieu"><span>RabbitMQ</span><span>18.4K<!-- --> Stacks</span></div></a><div class="css-omocl"></div></div><button data-testid="removeTool" class="css-pn8ojz"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12"><g fill="#FFF" fill-rule="evenodd" stroke="#FFF" stroke-width=".6"><rect width="15.543" height="1.137" x="-1.805" y="5.439" rx=".569" transform="rotate(45 5.967 6.105)"></rect><rect width="15.543" height="1.137" x="-1.805" y="5.3" rx=".569" transform="rotate(135 5.967 5.967)"></rect></g></svg></button></div></div></div></div></div><main class="css-ii8qy4"><div class="css-jaw8ve"><div class="css-19hrebc"><div style="border:0;padding:0 10px 0 10px" class="css-5k0ecd"><div style="margin-bottom:15px"><div data-testid="getAdvice" class="css-86zjul"><div class="css-1di6wpo"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div><h1 class="css-lr10t7">Need advice about which tool to choose?<span class="css-4yzqpf">Ask the StackShare community!</span></h1></div><button class="css-st9eg3">Get Advice</button></div></div></div><div style="border:0;padding:0 10px 0 10px;margin-bottom:15px" class="css-3vlw85"><div class="css-x7ngfe"><a href="/amazon-sqs" class="css-ihgrxl"><div class="css-1sn2rjy"></div><div>Amazon SQS</div></a><div class="css-124gz8p"><div class="css-1iv3e1o"><div class="css-1ob9em9"><button class="css-1mpii3w">Check out Private StackShare for Teams</button></div></div><div class="css-1i4hfqi"><button data-testid="follow" class="css-14pk3xx"><svg width="11" height="11" viewBox="0 0 11 11" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="1.5"><path d="M5.5 0v11M0 5.5h11" fill="none" stroke="#fff"></path></svg> <!-- -->Follow</button><button data-testid="iUseThis" class="css-1o4togz"><svg width="11" height="11" viewBox="0 0 11 11" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="1.5"><path d="M5.5 0v11M0 5.5h11" fill="none" stroke="#fff"></path></svg> I use this</button></div></div><hr class="css-2urik6"/><div class="css-1drwozb"><div class="css-gbti5j"><label>Stacks</label><span>3K</span></div><div class="css-1ahj942"></div><div class="css-1an0suy"><label>Followers</label><span>1.9K</span><div>+ 1</div></div><div class="css-1ahj942"></div><div class="css-gbti5j"><label>Votes</label><span>167</span></div></div><button data-testid="removeTool" class="css-pn8ojz"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12"><g fill="#FFF" fill-rule="evenodd" stroke="#FFF" stroke-width=".6"><rect width="15.543" height="1.137" x="-1.805" y="5.439" rx=".569" transform="rotate(45 5.967 6.105)"></rect><rect width="15.543" height="1.137" x="-1.805" y="5.3" rx=".569" transform="rotate(135 5.967 5.967)"></rect></g></svg></button></div></div><div style="border:0;padding:0 10px 0 10px;margin-bottom:15px" class="css-3vlw85"><div class="css-x7ngfe"><a href="/celery" class="css-ihgrxl"><div class="css-19iq1g0"></div><div>Celery</div></a><div class="css-124gz8p"><div class="css-1iv3e1o"></div><div class="css-1i4hfqi"><button data-testid="follow" class="css-14pk3xx"><svg width="11" height="11" viewBox="0 0 11 11" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="1.5"><path d="M5.5 0v11M0 5.5h11" fill="none" stroke="#fff"></path></svg> <!-- -->Follow</button><button data-testid="iUseThis" class="css-1o4togz"><svg width="11" height="11" viewBox="0 0 11 11" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="1.5"><path d="M5.5 0v11M0 5.5h11" fill="none" stroke="#fff"></path></svg> I use this</button></div></div><hr class="css-2urik6"/><div class="css-1drwozb"><div class="css-gbti5j"><label>Stacks</label><span>1.5K</span></div><div class="css-1ahj942"></div><div class="css-1an0suy"><label>Followers</label><span>1.5K</span><div>+ 1</div></div><div class="css-1ahj942"></div><div class="css-gbti5j"><label>Votes</label><span>279</span></div></div><button data-testid="removeTool" class="css-pn8ojz"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12"><g fill="#FFF" fill-rule="evenodd" stroke="#FFF" stroke-width=".6"><rect width="15.543" height="1.137" x="-1.805" y="5.439" rx=".569" transform="rotate(45 5.967 6.105)"></rect><rect width="15.543" height="1.137" x="-1.805" y="5.3" rx=".569" transform="rotate(135 5.967 5.967)"></rect></g></svg></button></div></div><div style="border:0;padding:0 10px 0 10px;margin-bottom:15px" class="css-3vlw85"><div class="css-x7ngfe"><a href="/rabbitmq" class="css-ihgrxl"><div class="css-70bqh8"></div><div>RabbitMQ</div></a><div class="css-124gz8p"><div class="css-1iv3e1o"><div class="css-1ob9em9"><button class="css-1mpii3w">Monitor RabbitMQ Metrics In Real-Time With Datadog</button></div></div><div class="css-1i4hfqi"><button data-testid="follow" class="css-14pk3xx"><svg width="11" height="11" viewBox="0 0 11 11" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="1.5"><path d="M5.5 0v11M0 5.5h11" fill="none" stroke="#fff"></path></svg> <!-- -->Follow</button><button data-testid="iUseThis" class="css-1o4togz"><svg width="11" height="11" viewBox="0 0 11 11" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="1.5"><path d="M5.5 0v11M0 5.5h11" fill="none" stroke="#fff"></path></svg> I use this</button></div></div><hr class="css-2urik6"/><div class="css-1drwozb"><div class="css-gbti5j"><label>Stacks</label><span>18.4K</span></div><div class="css-1ahj942"></div><div class="css-1an0suy"><label>Followers</label><span>16.1K</span><div>+ 1</div></div><div class="css-1ahj942"></div><div class="css-gbti5j"><label>Votes</label><span>522</span></div></div><button data-testid="removeTool" class="css-pn8ojz"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12"><g fill="#FFF" fill-rule="evenodd" stroke="#FFF" stroke-width=".6"><rect width="15.543" height="1.137" x="-1.805" y="5.439" rx=".569" transform="rotate(45 5.967 6.105)"></rect><rect width="15.543" height="1.137" x="-1.805" y="5.3" rx=".569" transform="rotate(135 5.967 5.967)"></rect></g></svg></button></div></div><div id="decisions" style="pointer-events:none;grid-column:span 3;display:block;height:182px;margin-top:-182px"></div><div style="border-bottom:none;padding-bottom:0" class="css-5k0ecd"><div class="css-oa3yz4"><div class="css-1g9kten">Advice on Amazon SQS, Celery, and RabbitMQ</div><div class="css-yzfa9h"><div class="css-uw1ldh"><div class="css-4gnhqq"><div class="css-xkasvz"><div class="css-atv6j6"><div class="css-1m8tyev"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div></div></div><div class="css-1vf0ygt"><div class="css-utnqcw">kaffarell</div><div class="css-ds0hbm"><a href="/kaffarell/decisions/107355650747834760" class="css-nil"><time>Nov 28, 2021</time> | 4 upvotes · 95.8K views </a></div></div></div></div><div class="css-nil"><div class="css-dg4ww9"><svg xmlns="http://www.w3.org/2000/svg" width="21" height="21" viewBox="0 0 21 21"><g fill="none"><path fill="#FF7E3F" d="M20.918 19.017l-1.442-4.195a10.3 10.3 0 0 0 1.062-4.537 10.208 10.208 0 0 0-2.949-7.207A10.199 10.199 0 0 0 10.436 0a10.23 10.23 0 0 0-7.428 3.006A10.228 10.228 0 0 0 0 10.437a10.199 10.199 0 0 0 3.077 7.153 10.207 10.207 0 0 0 7.191 2.95h.016a10.3 10.3 0 0 0 4.537-1.063l4.195 1.442a1.485 1.485 0 0 0 1.543-.357c.408-.408.545-.999.358-1.544z"></path><path fill="#FFF" stroke="#FFF" stroke-width=".55" d="M10.168 14.702c.35 0 .595 0 .623.622.028.623-.297.623-.623.623-.349 0-.607-.285-.622-.623-.015-.336.297-.622.622-.622zm0-9.465a3.1 3.1 0 0 1 3.097 3.097 3.103 3.103 0 0 1-2.474 3.034v1.543a.623.623 0 1 1-1.245 0V10.81c0-.344.278-.623.622-.623 1.021 0 1.852-.83 1.852-1.852 0-1.021-.83-1.852-1.852-1.852-1.021 0-1.852.83-1.852 1.852a.623.623 0 0 1-1.245 0 3.1 3.1 0 0 1 3.097-3.097z"></path></g></svg><div class="css-z9ms26">Needs advice</div><div class="css-6uh2e7">on</div><a href="/kafka" class="css-1pwtf47"><span title="Kafka" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/1063/kazUJooF_400x400.jpg" alt="Kafka" class="css-1rz3855"/></span><span class="css-i6njnm">Kafka</span></a><a href="/rabbitmq" class="css-1pwtf47"><span title="RabbitMQ" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg" alt="RabbitMQ" class="css-1rz3855"/></span><span class="css-i6njnm">RabbitMQ</span></a><div class="css-6uh2e7"> and </div><a href="/redis" class="css-1pwtf47"><span title="Redis" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/1031/default_cbce472cd134adc6688572f999e9122b9657d4ba.png" alt="Redis" class="css-1rz3855"/></span><span class="css-i6njnm">Redis</span></a></div><div class="css-1dp4k20"><div class="css-ztg526"><p>We are currently moving to a microservice architecture and are debating about the different options there are to handle communication between services. We are currently considering <span class="tool">Kafka</span>, <span class="tool">Redis</span> or <span class="tool">RabbitMQ</span> as a message broker. As RabbitMQ is a little bit older, we thought that it may be outdated. Is that true? Can RabbitMQ hold up to more modern tools like Redis and Kafka?</p></div></div></div><a class="css-1srb7t4">See more</a></div><div class="css-1pz1q9u"><div class="css-1rla8dl">Replies <span>(4)</span></div><div class="css-1cqgl9p"><div class="css-1cm2u5n"><div class="css-lhxxg6"></div><div class="css-jyena0"></div><div class="css-s6ccv3"></div></div><div class="css-uw1ldh"><div class="css-4gnhqq"><div class="css-xkasvz"><div class="css-atv6j6"><div class="css-1m8tyev"><a href="/tarunbatra" title="Visit Profile" class="css-pvufaf"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div></a></div></div><div class="css-1vf0ygt"><div class="css-utnqcw">Tarun Batra</div><div class="css-ds0hbm">Senior Software Developer<!-- --> at Okta<!-- --> · <a href="/tarunbatra/decisions/107388160949344756" class="css-nil"><time>Dec 4, 2021</time> | 10 upvotes · 94.9K views </a></div></div></div></div><div class="css-nil"><div class="css-dg4ww9"><svg xmlns="http://www.w3.org/2000/svg" width="21" height="21" viewBox="0 0 21 21"><g fill="none" fill-rule="evenodd"><path fill="#068DFE" fill-rule="nonzero" d="M20.917 19.017c.188.545.05 1.136-.356 1.544a1.485 1.485 0 0 1-1.544.357l-4.196-1.442a10.3 10.3 0 0 1-4.536 1.062h-.016a10.207 10.207 0 0 1-7.191-2.949A10.199 10.199 0 0 1 0 10.436a10.228 10.228 0 0 1 3.006-7.428A10.23 10.23 0 0 1 10.437 0a10.199 10.199 0 0 1 7.153 3.077 10.208 10.208 0 0 1 2.95 7.208 10.3 10.3 0 0 1-1.063 4.536l1.441 4.195z"></path><path fill="#FFF" d="M10.221 15.937c-1.024 0-1.854-.905-1.854-2.021h3.709c0 1.116-.83 2.021-1.855 2.021zm1.721-3.083H8.5C8.408 11.813 6 10.904 6 8.303 6 5.527 8.02 4.056 10.22 4h.001c2.202.056 4.221 1.527 4.221 4.303 0 2.602-2.407 3.51-2.5 4.55z"></path></g></svg><div class="css-z9ms26">Recommends</div><a href="/kafka" class="css-1pwtf47"><span title="Kafka" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/1063/kazUJooF_400x400.jpg" alt="Kafka" class="css-1rz3855"/></span><span class="css-i6njnm">Kafka</span></a><a href="/rabbitmq" class="css-1pwtf47"><span title="RabbitMQ" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg" alt="RabbitMQ" class="css-1rz3855"/></span><span class="css-i6njnm">RabbitMQ</span></a></div><div class="css-1dp4k20"><div class="css-ztg526"><p>We have faced the same question some time ago. Before I begin, <strong>DO NOT use Redis</strong> as a message broker. It is fast and easy to set up in the beginning but it does not scale. It is not made to be reliable in scale and that is mentioned in the official docs. <a href="https://tarunbatra.com/blog/architecture/Polling-reliably-at-scale-using-DLQs/#Redis-Keyspace-Notifications" rel="nofollow noopener" target="_blank">This analysis of our problems with Redis</a> may help you.</p> <p>We have used Kafka and RabbitMQ both in scale. We concluded that RabbitMQ is a really good general purpose message broker (for our case) and Kafka is really fast but limited in features. That’s the trade off that we understood from using it. In-fact I <a href="https://tarunbatra.com/blog/comparison/How-to-choose-between-Kafka-and-RabbitMQ/" rel="nofollow noopener" target="_blank">blogged about the trade offs between Kafka and RabbitMQ</a> to document it. I hope it helps you in choosing the best pub-sub layer for your use case.</p></div><div class="css-13nf4of"><svg class="css-xd3exe" xmlns="http://www.w3.org/2000/svg" width="11" height="11" viewBox="0 0 11 11"><g fill="#49A8F9" fill-rule="evenodd"><path d="M10.5 0h-4a.5.5 0 0 0 0 1h2.793L4.146 6.146a.5.5 0 1 0 .708.708L10 1.707V4.5a.5.5 0 0 0 1 0v-4a.5.5 0 0 0-.5-.5"></path><path d="M8.5 5a.5.5 0 0 0-.5.5V10H1V3h4.5a.5.5 0 0 0 0-1h-5a.5.5 0 0 0-.5.5v8a.5.5 0 0 0 .5.5h8a.5.5 0 0 0 .5-.5v-5a.5.5 0 0 0-.5-.5"></path></g></svg><a href="https://tarunbatra.com/tags/message-queue/" title="Tag: message-queue" class="css-nil">Tag: message-queue</a></div></div></div><a class="css-1srb7t4">See more</a></div></div><div class="css-1cqgl9p"><div class="css-1cm2u5n"><div class="css-lhxxg6"></div><div class="css-jyena0"></div><div class="css-s6ccv3"></div></div><div class="css-uw1ldh"><div class="css-4gnhqq"><div class="css-xkasvz"><div class="css-atv6j6"><div class="css-1m8tyev"><a href="/rizwansaeedshaikh" title="Visit Profile" class="css-pvufaf"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div></a></div></div><div class="css-1vf0ygt"><div class="css-utnqcw">rizwansaeedshaikh</div><div class="css-ds0hbm"><a href="/rizwansaeedshaikh/decisions/107360308702250938" class="css-nil"><time>Nov 29, 2021</time> | 5 upvotes · 95.7K views </a></div></div></div></div><div class="css-nil"><div class="css-dg4ww9"><svg xmlns="http://www.w3.org/2000/svg" width="21" height="21" viewBox="0 0 21 21"><g fill="none" fill-rule="evenodd"><path fill="#068DFE" fill-rule="nonzero" d="M20.917 19.017c.188.545.05 1.136-.356 1.544a1.485 1.485 0 0 1-1.544.357l-4.196-1.442a10.3 10.3 0 0 1-4.536 1.062h-.016a10.207 10.207 0 0 1-7.191-2.949A10.199 10.199 0 0 1 0 10.436a10.228 10.228 0 0 1 3.006-7.428A10.23 10.23 0 0 1 10.437 0a10.199 10.199 0 0 1 7.153 3.077 10.208 10.208 0 0 1 2.95 7.208 10.3 10.3 0 0 1-1.063 4.536l1.441 4.195z"></path><path fill="#FFF" d="M10.221 15.937c-1.024 0-1.854-.905-1.854-2.021h3.709c0 1.116-.83 2.021-1.855 2.021zm1.721-3.083H8.5C8.408 11.813 6 10.904 6 8.303 6 5.527 8.02 4.056 10.22 4h.001c2.202.056 4.221 1.527 4.221 4.303 0 2.602-2.407 3.51-2.5 4.55z"></path></g></svg><div class="css-z9ms26">Recommends</div></div><div class="css-1dp4k20"><div class="css-ztg526"><p>It depends on your requirements like number of messages to be processed per second, real time messages vs delayed, number of servers available for your cluster, whether you need streaming, etc.. Kafka works for most use cases. Not related to answer but would like to add no matter whatever broker you chose, for connecting to the broker always go for the library provided by the broker rather than Spring kafka or Spring AMQP. If you use Spring, then you will be stuck with specific Spring versions. In case you find bugs in spring then difficult because you will have to upgrade entire application to use a later Spring core version. In general, use as minimum libraries as possible to get rid of nuisance of upgrading them when they are outdated or bugs are found with them. </p></div></div></div><a class="css-1srb7t4">See more</a></div></div><div class="css-1cqgl9p"><div class="css-1cm2u5n"><div class="css-lhxxg6"></div><div class="css-jyena0"></div><div class="css-s6ccv3"></div></div><div class="css-uw1ldh"><div class="css-4gnhqq"><div class="css-xkasvz"><div class="css-atv6j6"><div class="css-1m8tyev"><a href="/jimhillr" title="Visit Profile" class="css-pvufaf"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div></a></div></div><div class="css-1vf0ygt"><div class="css-utnqcw">Jim Hill</div><div class="css-ds0hbm"><a href="/jimhillr/decisions/107386987839772932" class="css-nil"><time>Dec 4, 2021</time> | 3 upvotes · 76.8K views </a></div></div></div></div><div class="css-nil"><div class="css-dg4ww9"><svg xmlns="http://www.w3.org/2000/svg" width="21" height="21" viewBox="0 0 21 21"><g fill="none" fill-rule="evenodd"><path fill="#068DFE" fill-rule="nonzero" d="M20.917 19.017c.188.545.05 1.136-.356 1.544a1.485 1.485 0 0 1-1.544.357l-4.196-1.442a10.3 10.3 0 0 1-4.536 1.062h-.016a10.207 10.207 0 0 1-7.191-2.949A10.199 10.199 0 0 1 0 10.436a10.228 10.228 0 0 1 3.006-7.428A10.23 10.23 0 0 1 10.437 0a10.199 10.199 0 0 1 7.153 3.077 10.208 10.208 0 0 1 2.95 7.208 10.3 10.3 0 0 1-1.063 4.536l1.441 4.195z"></path><path fill="#FFF" d="M10.221 15.937c-1.024 0-1.854-.905-1.854-2.021h3.709c0 1.116-.83 2.021-1.855 2.021zm1.721-3.083H8.5C8.408 11.813 6 10.904 6 8.303 6 5.527 8.02 4.056 10.22 4h.001c2.202.056 4.221 1.527 4.221 4.303 0 2.602-2.407 3.51-2.5 4.55z"></path></g></svg><div class="css-z9ms26">Recommends</div><a href="/kafka" class="css-1pwtf47"><span title="Kafka" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/1063/kazUJooF_400x400.jpg" alt="Kafka" class="css-1rz3855"/></span><span class="css-i6njnm">Kafka</span></a><a href="/redis" class="css-1pwtf47"><span title="Redis" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/1031/default_cbce472cd134adc6688572f999e9122b9657d4ba.png" alt="Redis" class="css-1rz3855"/></span><span class="css-i6njnm">Redis</span></a></div><div class="css-1dp4k20"><div class="css-ztg526"><p>I would not recommend RabbitMQ. It does not scale well.</p> <p>I would recommend Redis if you want non-durable, fast, distributed, and scalable messaging. Note it has almost no guarantees around at least once delivery and similar so you will have to handle that.</p> <p>I would recommend Kafka if you want the whole deal with a bit more bloat. It is durable, fast, distributed and scalable. It has few downsides other than a learning curve and higher cost.</p> <p>I currently use Redis as my message queue and plan to upgrade to Kafka in Q1</p></div></div></div><a class="css-1srb7t4">See more</a></div></div><div class="css-1cqgl9p"><div class="css-1cm2u5n"><div class="css-lhxxg6"></div><div class="css-jyena0"></div></div><div class="css-uw1ldh"><div class="css-4gnhqq"><div class="css-xkasvz"><div class="css-atv6j6"><div class="css-1m8tyev"><a href="/sunilmchaudhari" title="Visit Profile" class="css-pvufaf"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div></a></div></div><div class="css-1vf0ygt"><div class="css-utnqcw">Sunil Chaudhari</div><div class="css-ds0hbm">Team Lead<!-- --> at XYZ<!-- --> · <a href="/sunilmchaudhari/decisions/107927893220970871" class="css-nil"><time>Mar 9, 2022</time> | 2 upvotes · 56.1K views </a></div></div></div></div><div class="css-nil"><div class="css-dg4ww9"><svg xmlns="http://www.w3.org/2000/svg" width="21" height="21" viewBox="0 0 21 21"><g fill="none" fill-rule="evenodd"><path fill="#068DFE" fill-rule="nonzero" d="M20.917 19.017c.188.545.05 1.136-.356 1.544a1.485 1.485 0 0 1-1.544.357l-4.196-1.442a10.3 10.3 0 0 1-4.536 1.062h-.016a10.207 10.207 0 0 1-7.191-2.949A10.199 10.199 0 0 1 0 10.436a10.228 10.228 0 0 1 3.006-7.428A10.23 10.23 0 0 1 10.437 0a10.199 10.199 0 0 1 7.153 3.077 10.208 10.208 0 0 1 2.95 7.208 10.3 10.3 0 0 1-1.063 4.536l1.441 4.195z"></path><path fill="#FFF" d="M10.221 15.937c-1.024 0-1.854-.905-1.854-2.021h3.709c0 1.116-.83 2.021-1.855 2.021zm1.721-3.083H8.5C8.408 11.813 6 10.904 6 8.303 6 5.527 8.02 4.056 10.22 4h.001c2.202.056 4.221 1.527 4.221 4.303 0 2.602-2.407 3.51-2.5 4.55z"></path></g></svg><div class="css-z9ms26">Recommends</div></div><div class="css-1dp4k20"><div class="css-ztg526"><p>Hi, First of all, understand the difference. All works as message brokers. All know JSON. But Redis is not a queue or topic. Its an in memory cache. RabbitMq/Kafka persists data on file system but redis holds in a temporary memory. If redis is down and if u cant use the cache dump wisely then ur data gone. Redis is very short lived broker though its fast due to less i/o operations and other commits that kafak does. I dont have much exp in RabbitMq so cant comment on that but RabbitMq is better in administration than open sourcen kafka in case your maanger dont want to pay money ….. 😂</p> <p>Coming to decision… If You are ready to risk/ compromise the in memory data inside cache then go for redis. If you are not concerned about horizontal scaling and can do ur job by vertical scaling then go for redis. If you want horizontal scaling and want to persist data on disk for fetching later then go for kafka. But u cant achieve speed unless you fine tune your consumers. Need better understanding of consumer threads, partitioning, poll intervals etc. If you use confluent platform the dont even compare kafka with redis and rabbitmq.</p> <p>Cheers! Sunil. </p></div></div></div><a class="css-1srb7t4">See more</a></div></div><div class="css-gyrv08"></div></div></div><div class="css-yzfa9h"><div class="css-uw1ldh"><div class="css-4gnhqq"><div class="css-xkasvz"><div class="css-atv6j6"><div class="css-1m8tyev"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div></div></div><div class="css-1vf0ygt"><div class="css-utnqcw">Pulkit Sapra</div><div class="css-ds0hbm">Software Engineer<!-- --> · <a href="/pulkitsapra/decisions/105121118397386240" class="css-nil"><time>Oct 30, 2020</time> | 7 upvotes · 303.6K views </a></div></div></div></div><div class="css-nil"><div class="css-dg4ww9"><svg xmlns="http://www.w3.org/2000/svg" width="21" height="21" viewBox="0 0 21 21"><g fill="none"><path fill="#FF7E3F" d="M20.918 19.017l-1.442-4.195a10.3 10.3 0 0 0 1.062-4.537 10.208 10.208 0 0 0-2.949-7.207A10.199 10.199 0 0 0 10.436 0a10.23 10.23 0 0 0-7.428 3.006A10.228 10.228 0 0 0 0 10.437a10.199 10.199 0 0 0 3.077 7.153 10.207 10.207 0 0 0 7.191 2.95h.016a10.3 10.3 0 0 0 4.537-1.063l4.195 1.442a1.485 1.485 0 0 0 1.543-.357c.408-.408.545-.999.358-1.544z"></path><path fill="#FFF" stroke="#FFF" stroke-width=".55" d="M10.168 14.702c.35 0 .595 0 .623.622.028.623-.297.623-.623.623-.349 0-.607-.285-.622-.623-.015-.336.297-.622.622-.622zm0-9.465a3.1 3.1 0 0 1 3.097 3.097 3.103 3.103 0 0 1-2.474 3.034v1.543a.623.623 0 1 1-1.245 0V10.81c0-.344.278-.623.622-.623 1.021 0 1.852-.83 1.852-1.852 0-1.021-.83-1.852-1.852-1.852-1.021 0-1.852.83-1.852 1.852a.623.623 0 0 1-1.245 0 3.1 3.1 0 0 1 3.097-3.097z"></path></g></svg><div class="css-z9ms26">Needs advice</div><div class="css-6uh2e7">on</div><a href="/amazon-sqs" class="css-1pwtf47"><span title="Amazon SQS" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/395/amazon-sqs.png" alt="Amazon SQS" class="css-1rz3855"/></span><span class="css-i6njnm">Amazon SQS</span></a><a href="/kubernetes" class="css-1pwtf47"><span title="Kubernetes" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/1885/21_d3cvM.png" alt="Kubernetes" class="css-1rz3855"/></span><span class="css-i6njnm">Kubernetes</span></a><div class="css-6uh2e7"> and </div><a href="/rabbitmq" class="css-1pwtf47"><span title="RabbitMQ" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg" alt="RabbitMQ" class="css-1rz3855"/></span><span class="css-i6njnm">RabbitMQ</span></a></div><div class="css-1dp4k20"><div class="css-ztg526"><p>Hi! I am creating a scraping system in <span class="tool">Django</span>, which involves long running tasks between 1 minute &amp; 1 Day. As I am new to Message Brokers and Task Queues, I need advice on which architecture to use for my system. ( <span class="tool">Amazon SQS</span>, <span class="tool">RabbitMQ</span>, or <span class="tool">Celery</span>). The system should be autoscalable using <span class="tool">Kubernetes</span>(K8) based on the number of pending tasks in the queue.</p></div></div></div><a class="css-1srb7t4">See more</a></div><div class="css-1pz1q9u"><div class="css-1rla8dl">Replies <span>(1)</span></div><div class="css-1cqgl9p"><div class="css-1cm2u5n"><div class="css-lhxxg6"></div><div class="css-jyena0"></div></div><div class="css-uw1ldh"><div class="css-4gnhqq"><div class="css-xkasvz"><div class="css-atv6j6"><div class="css-1m8tyev"><a href="/anis_zehani" title="Visit Profile" class="css-pvufaf"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div></a></div></div><div class="css-1vf0ygt"><div class="css-utnqcw">Anis Zehani</div><div class="css-ds0hbm">Founder<!-- --> at Odix<!-- --> · <a href="/anis_zehani/decisions/105171764722647865" class="css-nil"><time>Nov 8, 2020</time> | 1 upvotes · 209.5K views </a></div></div></div></div><div class="css-nil"><div class="css-dg4ww9"><svg xmlns="http://www.w3.org/2000/svg" width="21" height="21" viewBox="0 0 21 21"><g fill="none" fill-rule="evenodd"><path fill="#068DFE" fill-rule="nonzero" d="M20.917 19.017c.188.545.05 1.136-.356 1.544a1.485 1.485 0 0 1-1.544.357l-4.196-1.442a10.3 10.3 0 0 1-4.536 1.062h-.016a10.207 10.207 0 0 1-7.191-2.949A10.199 10.199 0 0 1 0 10.436a10.228 10.228 0 0 1 3.006-7.428A10.23 10.23 0 0 1 10.437 0a10.199 10.199 0 0 1 7.153 3.077 10.208 10.208 0 0 1 2.95 7.208 10.3 10.3 0 0 1-1.063 4.536l1.441 4.195z"></path><path fill="#FFF" d="M10.221 15.937c-1.024 0-1.854-.905-1.854-2.021h3.709c0 1.116-.83 2.021-1.855 2.021zm1.721-3.083H8.5C8.408 11.813 6 10.904 6 8.303 6 5.527 8.02 4.056 10.22 4h.001c2.202.056 4.221 1.527 4.221 4.303 0 2.602-2.407 3.51-2.5 4.55z"></path></g></svg><div class="css-z9ms26">Recommends</div><a href="/kafka" class="css-1pwtf47"><span title="Kafka" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/1063/kazUJooF_400x400.jpg" alt="Kafka" class="css-1rz3855"/></span><span class="css-i6njnm">Kafka</span></a></div><div class="css-1dp4k20"><div class="css-ztg526"><p>Hello, i highly recommend Apache Kafka, to me it's the best. You can deploy it in cluster mode inside K8S, thus you can have a Highly available system (also auto scalable).</p> <p>Good luck </p></div></div></div><a class="css-1srb7t4">See more</a></div></div><div class="css-gyrv08"></div></div></div><div class="css-yzfa9h"><div class="css-uw1ldh"><div class="css-4gnhqq"><div class="css-xkasvz"><div class="css-atv6j6"><div class="css-1m8tyev"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div></div></div><div class="css-1vf0ygt"><div class="css-utnqcw">Shantha Dodmane</div><div class="css-ds0hbm"><a href="/owgittshan/decisions/104953686570440715" class="css-nil"><time>Sep 30, 2020</time> | 3 upvotes · 191.7K views </a></div></div></div></div><div class="css-nil"><div class="css-dg4ww9"><svg xmlns="http://www.w3.org/2000/svg" width="21" height="21" viewBox="0 0 21 21"><g fill="none"><path fill="#FF7E3F" d="M20.918 19.017l-1.442-4.195a10.3 10.3 0 0 0 1.062-4.537 10.208 10.208 0 0 0-2.949-7.207A10.199 10.199 0 0 0 10.436 0a10.23 10.23 0 0 0-7.428 3.006A10.228 10.228 0 0 0 0 10.437a10.199 10.199 0 0 0 3.077 7.153 10.207 10.207 0 0 0 7.191 2.95h.016a10.3 10.3 0 0 0 4.537-1.063l4.195 1.442a1.485 1.485 0 0 0 1.543-.357c.408-.408.545-.999.358-1.544z"></path><path fill="#FFF" stroke="#FFF" stroke-width=".55" d="M10.168 14.702c.35 0 .595 0 .623.622.028.623-.297.623-.623.623-.349 0-.607-.285-.622-.623-.015-.336.297-.622.622-.622zm0-9.465a3.1 3.1 0 0 1 3.097 3.097 3.103 3.103 0 0 1-2.474 3.034v1.543a.623.623 0 1 1-1.245 0V10.81c0-.344.278-.623.622-.623 1.021 0 1.852-.83 1.852-1.852 0-1.021-.83-1.852-1.852-1.852-1.021 0-1.852.83-1.852 1.852a.623.623 0 0 1-1.245 0 3.1 3.1 0 0 1 3.097-3.097z"></path></g></svg><div class="css-z9ms26">Needs advice</div><div class="css-6uh2e7">on</div><a href="/celery" class="css-1pwtf47"><span title="Celery" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/1075/celery.png" alt="Celery" class="css-1rz3855"/></span><span class="css-i6njnm">Celery</span></a><div class="css-6uh2e7"> and </div><a href="/rabbitmq" class="css-1pwtf47"><span title="RabbitMQ" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg" alt="RabbitMQ" class="css-1rz3855"/></span><span class="css-i6njnm">RabbitMQ</span></a></div><div class="css-1dp4k20"><div class="css-ztg526"><p>I am just a beginner at these two technologies. </p> <p>Problem statement: I am getting lakh of users from the sequel server for whom I need to create caches in <span class="tool">MongoDB</span> by making different REST API requests.</p> <p>Here these users can be treated as messages. Each REST API request is a task.</p> <p>I am confused about whether I should go for <span class="tool">RabbitMQ</span> alone or <span class="tool">Celery</span>. </p> <p>If I have to go with <span class="tool">RabbitMQ</span>, I prefer to use python with Pika module. But the challenge with Pika is, it is not thread-safe. So I am not finding a way to execute a lakh of API requests in parallel using multiple threads using Pika.</p> <p>If I have to go with <span class="tool">Celery</span>, I don't know how I can achieve better scalability in executing these API requests in parallel.</p></div></div></div><a class="css-1srb7t4">See more</a></div><div class="css-1pz1q9u"><div class="css-1rla8dl">Replies <span>(1)</span></div><div class="css-1cqgl9p"><div class="css-1cm2u5n"><div class="css-lhxxg6"></div><div class="css-jyena0"></div></div><div class="css-uw1ldh"><div class="css-4gnhqq"><div class="css-xkasvz"><div class="css-atv6j6"><div class="css-1m8tyev"><a href="/TravisJoe" title="Visit Profile" class="css-pvufaf"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div></a></div></div><div class="css-1vf0ygt"><div class="css-utnqcw">Travis Travelstead</div><div class="css-ds0hbm"><a href="/TravisJoe/decisions/104982917897247571" class="css-nil"><time>Oct 5, 2020</time> | 5 upvotes · 173.4K views </a></div></div></div></div><div class="css-nil"><div class="css-dg4ww9"><svg xmlns="http://www.w3.org/2000/svg" width="21" height="21" viewBox="0 0 21 21"><g fill="none" fill-rule="evenodd"><path fill="#068DFE" fill-rule="nonzero" d="M20.917 19.017c.188.545.05 1.136-.356 1.544a1.485 1.485 0 0 1-1.544.357l-4.196-1.442a10.3 10.3 0 0 1-4.536 1.062h-.016a10.207 10.207 0 0 1-7.191-2.949A10.199 10.199 0 0 1 0 10.436a10.228 10.228 0 0 1 3.006-7.428A10.23 10.23 0 0 1 10.437 0a10.199 10.199 0 0 1 7.153 3.077 10.208 10.208 0 0 1 2.95 7.208 10.3 10.3 0 0 1-1.063 4.536l1.441 4.195z"></path><path fill="#FFF" d="M10.221 15.937c-1.024 0-1.854-.905-1.854-2.021h3.709c0 1.116-.83 2.021-1.855 2.021zm1.721-3.083H8.5C8.408 11.813 6 10.904 6 8.303 6 5.527 8.02 4.056 10.22 4h.001c2.202.056 4.221 1.527 4.221 4.303 0 2.602-2.407 3.51-2.5 4.55z"></path></g></svg><div class="css-z9ms26">Recommends</div><a href="/pypi-rq" class="css-1pwtf47"><span title="rq" class="css-t68yd0 service"><img src="https://img.stackshare.io/package/20393/default_ec7f908dc4ac3533950df7d8e371292c0bdc3812.png" alt="rq" class="css-1rz3855"/></span><span class="css-i6njnm">rq</span></a><a href="/redis" class="css-1pwtf47"><span title="Redis" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/1031/default_cbce472cd134adc6688572f999e9122b9657d4ba.png" alt="Redis" class="css-1rz3855"/></span><span class="css-i6njnm">Redis</span></a></div><div class="css-1dp4k20"><div class="css-ztg526"><p>For large amounts of small tasks and caches I have had good luck with Redis and RQ. I have not personally used celery but I am fairly sure it would scale well, and I have not used RabbitMQ for anything besides communication between services. If you prefer python my suggestions should feel comfortable.</p> <p>Sorry I do not have a more information</p></div></div></div><a class="css-1srb7t4">See more</a></div></div><div class="css-gyrv08"></div></div></div><div class="css-yzfa9h"><div class="css-uw1ldh"><div class="css-4gnhqq"><div class="css-xkasvz"><div class="css-atv6j6"><div class="css-1m8tyev"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div></div></div><div class="css-1vf0ygt"><div class="css-utnqcw">Meili Triantafyllidi</div><div class="css-ds0hbm">Software engineer<!-- --> at Digital Science<!-- --> · <a href="/meili1793/decisions/104919520023977022" class="css-nil"><time>Sep 24, 2020</time> | 6 upvotes · 324.2K views </a></div></div></div></div><div class="css-nil"><div class="css-dg4ww9"><svg xmlns="http://www.w3.org/2000/svg" width="21" height="21" viewBox="0 0 21 21"><g fill="none"><path fill="#FF7E3F" d="M20.918 19.017l-1.442-4.195a10.3 10.3 0 0 0 1.062-4.537 10.208 10.208 0 0 0-2.949-7.207A10.199 10.199 0 0 0 10.436 0a10.23 10.23 0 0 0-7.428 3.006A10.228 10.228 0 0 0 0 10.437a10.199 10.199 0 0 0 3.077 7.153 10.207 10.207 0 0 0 7.191 2.95h.016a10.3 10.3 0 0 0 4.537-1.063l4.195 1.442a1.485 1.485 0 0 0 1.543-.357c.408-.408.545-.999.358-1.544z"></path><path fill="#FFF" stroke="#FFF" stroke-width=".55" d="M10.168 14.702c.35 0 .595 0 .623.622.028.623-.297.623-.623.623-.349 0-.607-.285-.622-.623-.015-.336.297-.622.622-.622zm0-9.465a3.1 3.1 0 0 1 3.097 3.097 3.103 3.103 0 0 1-2.474 3.034v1.543a.623.623 0 1 1-1.245 0V10.81c0-.344.278-.623.622-.623 1.021 0 1.852-.83 1.852-1.852 0-1.021-.83-1.852-1.852-1.852-1.021 0-1.852.83-1.852 1.852a.623.623 0 0 1-1.245 0 3.1 3.1 0 0 1 3.097-3.097z"></path></g></svg><div class="css-z9ms26">Needs advice</div><div class="css-6uh2e7">on</div><a href="/amazon-sqs" class="css-1pwtf47"><span title="Amazon SQS" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/395/amazon-sqs.png" alt="Amazon SQS" class="css-1rz3855"/></span><span class="css-i6njnm">Amazon SQS</span></a><a href="/rabbitmq" class="css-1pwtf47"><span title="RabbitMQ" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg" alt="RabbitMQ" class="css-1rz3855"/></span><span class="css-i6njnm">RabbitMQ</span></a><div class="css-6uh2e7"> and </div><a href="/zeromq" class="css-1pwtf47"><span title="ZeroMQ" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/1064/zeromq.png" alt="ZeroMQ" class="css-1rz3855"/></span><span class="css-i6njnm">ZeroMQ</span></a></div><div class="css-1dp4k20"><div class="css-ztg526"><p>Hi, we are in a ZMQ set up in a push/pull pattern, and we currently start to have more traffic and cases that the service is unavailable or stuck. We want to: * Not loose messages in services outages * Safely restart service without losing messages (<span class="tool">ZeroMQ</span> seems to need to close the socket in the receiver before restart manually) </p> <p>Do you have experience with this setup with ZeroMQ? Would you suggest <span class="tool">RabbitMQ</span> or <span class="tool">Amazon SQS</span> (we are in AWS setup) instead? Something else?</p> <p>Thank you for your time</p></div></div></div><a class="css-1srb7t4">See more</a></div><div class="css-1pz1q9u"><div class="css-1rla8dl">Replies <span>(2)</span></div><div class="css-1cqgl9p"><div class="css-1cm2u5n"><div class="css-lhxxg6"></div><div class="css-jyena0"></div><div class="css-s6ccv3"></div></div><div class="css-uw1ldh"><div class="css-4gnhqq"><div class="css-xkasvz"><div class="css-atv6j6"><div class="css-1m8tyev"><a href="/shishirpy" title="Visit Profile" class="css-pvufaf"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div></a></div></div><div class="css-1vf0ygt"><div class="css-utnqcw">Shishir Pandey</div><div class="css-ds0hbm"> at Staples<!-- --> · <a href="/shishirpy/decisions/104956226627666357" class="css-nil"><time>Sep 30, 2020</time> | 6 upvotes · 247K views </a></div></div></div></div><div class="css-nil"><div class="css-dg4ww9"><svg xmlns="http://www.w3.org/2000/svg" width="21" height="21" viewBox="0 0 21 21"><g fill="none" fill-rule="evenodd"><path fill="#068DFE" fill-rule="nonzero" d="M20.917 19.017c.188.545.05 1.136-.356 1.544a1.485 1.485 0 0 1-1.544.357l-4.196-1.442a10.3 10.3 0 0 1-4.536 1.062h-.016a10.207 10.207 0 0 1-7.191-2.949A10.199 10.199 0 0 1 0 10.436a10.228 10.228 0 0 1 3.006-7.428A10.23 10.23 0 0 1 10.437 0a10.199 10.199 0 0 1 7.153 3.077 10.208 10.208 0 0 1 2.95 7.208 10.3 10.3 0 0 1-1.063 4.536l1.441 4.195z"></path><path fill="#FFF" d="M10.221 15.937c-1.024 0-1.854-.905-1.854-2.021h3.709c0 1.116-.83 2.021-1.855 2.021zm1.721-3.083H8.5C8.408 11.813 6 10.904 6 8.303 6 5.527 8.02 4.056 10.22 4h.001c2.202.056 4.221 1.527 4.221 4.303 0 2.602-2.407 3.51-2.5 4.55z"></path></g></svg><div class="css-z9ms26">Recommends</div><a href="/rabbitmq" class="css-1pwtf47"><span title="RabbitMQ" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg" alt="RabbitMQ" class="css-1rz3855"/></span><span class="css-i6njnm">RabbitMQ</span></a></div><div class="css-1dp4k20"><div class="css-ztg526"><p>ZeroMQ is fast but you need to build build reliability yourself. There are a number of patterns described in the zeromq guide. I have used RabbitMQ before which gives lot of functionality out of the box, you can probably use the <code>worker queues</code> example from the tutorial, it can also persists messages in the queue.</p> <p>I haven't used Amazon SQS before. Another tool you could use is Kafka.</p></div></div></div><a class="css-1srb7t4">See more</a></div></div><div class="css-1cqgl9p"><div class="css-1cm2u5n"><div class="css-lhxxg6"></div><div class="css-jyena0"></div></div><div class="css-uw1ldh"><div class="css-4gnhqq"><div class="css-xkasvz"><div class="css-atv6j6"><div class="css-1m8tyev"><a href="/kevindeyne" title="Visit Profile" class="css-pvufaf"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div></a></div></div><div class="css-1vf0ygt"><div class="css-utnqcw">Kevin Deyne</div><div class="css-ds0hbm">Principal Software Engineer<!-- --> at Accurate Background<!-- --> · <a href="/kevindeyne/decisions/107372900444595027" class="css-nil"><time>Dec 1, 2021</time> | 5 upvotes · 120K views </a></div></div></div></div><div class="css-nil"><div class="css-dg4ww9"><svg xmlns="http://www.w3.org/2000/svg" width="21" height="21" viewBox="0 0 21 21"><g fill="none" fill-rule="evenodd"><path fill="#068DFE" fill-rule="nonzero" d="M20.917 19.017c.188.545.05 1.136-.356 1.544a1.485 1.485 0 0 1-1.544.357l-4.196-1.442a10.3 10.3 0 0 1-4.536 1.062h-.016a10.207 10.207 0 0 1-7.191-2.949A10.199 10.199 0 0 1 0 10.436a10.228 10.228 0 0 1 3.006-7.428A10.23 10.23 0 0 1 10.437 0a10.199 10.199 0 0 1 7.153 3.077 10.208 10.208 0 0 1 2.95 7.208 10.3 10.3 0 0 1-1.063 4.536l1.441 4.195z"></path><path fill="#FFF" d="M10.221 15.937c-1.024 0-1.854-.905-1.854-2.021h3.709c0 1.116-.83 2.021-1.855 2.021zm1.721-3.083H8.5C8.408 11.813 6 10.904 6 8.303 6 5.527 8.02 4.056 10.22 4h.001c2.202.056 4.221 1.527 4.221 4.303 0 2.602-2.407 3.51-2.5 4.55z"></path></g></svg><div class="css-z9ms26">Recommends</div><a href="/rabbitmq" class="css-1pwtf47"><span title="RabbitMQ" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg" alt="RabbitMQ" class="css-1rz3855"/></span><span class="css-i6njnm">RabbitMQ</span></a></div><div class="css-1dp4k20"><div class="css-ztg526"><p>Both would do the trick, but there are some nuances. We work with both.</p> <p>From the sound of it, your main focus is "not losing messages". In that case, I would go with RabbitMQ with a high availability policy (ha-mode=all) and a main/retry/error queue pattern. </p> <p>Push messages to an exchange, which sends them to the main queue. If an error occurs, push the errored out message to the retry exchange, which forwards it to the retry queue. Give the retry queue a x-message-ttl and set the main exchange as a dead-letter-exchange. If your message has been retried several times, push it to the error exchange, where the message can remain until someone has time to look at it.</p> <p>This is a very useful and resilient pattern that allows you to never lose messages. With the high availability policy, you make sure that if one of your rabbitmq nodes dies, another can take over and messages are already mirrored to it.</p> <p>This is not really possible with SQS, because SQS is a lot more focused on throughput and scaling. Combined with SNS it can do interesting things like deduplication of messages and such. That said, one thing core to its design is that messages have a maximum retention time. The idea is that a message that has stayed in an SQS queue for a while serves no more purpose after a while, so it gets removed - so as to not block up any listener resources for a long time. You can also set up a DLQ here, but these similarly do not hold onto messages forever. Since you seem to depend on messages surviving at all cost, I would suggest that the scaling/throughput benefit of SQS does not outweigh the difference in approach to messages there.</p></div></div></div><a class="css-1srb7t4">See more</a></div></div><div class="css-gyrv08"></div></div></div><div class="css-yzfa9h"><div class="css-uw1ldh"><div class="css-4gnhqq"><div class="css-xkasvz"><div class="css-atv6j6"><div class="css-1m8tyev"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div></div></div><div class="css-1vf0ygt"><div class="css-utnqcw">André Almeida</div><div class="css-ds0hbm">Technology Manager<!-- --> at GS1 Portugal - Codipor<!-- --> · <a href="/andrealmeida1991/decisions/104603392049444214" class="css-nil"><time>Jul 30, 2020</time> | 5 upvotes · 301K views </a></div></div></div></div><div class="css-nil"><div class="css-dg4ww9"><svg xmlns="http://www.w3.org/2000/svg" width="21" height="21" viewBox="0 0 21 21"><g fill="none"><path fill="#FF7E3F" d="M20.918 19.017l-1.442-4.195a10.3 10.3 0 0 0 1.062-4.537 10.208 10.208 0 0 0-2.949-7.207A10.199 10.199 0 0 0 10.436 0a10.23 10.23 0 0 0-7.428 3.006A10.228 10.228 0 0 0 0 10.437a10.199 10.199 0 0 0 3.077 7.153 10.207 10.207 0 0 0 7.191 2.95h.016a10.3 10.3 0 0 0 4.537-1.063l4.195 1.442a1.485 1.485 0 0 0 1.543-.357c.408-.408.545-.999.358-1.544z"></path><path fill="#FFF" stroke="#FFF" stroke-width=".55" d="M10.168 14.702c.35 0 .595 0 .623.622.028.623-.297.623-.623.623-.349 0-.607-.285-.622-.623-.015-.336.297-.622.622-.622zm0-9.465a3.1 3.1 0 0 1 3.097 3.097 3.103 3.103 0 0 1-2.474 3.034v1.543a.623.623 0 1 1-1.245 0V10.81c0-.344.278-.623.622-.623 1.021 0 1.852-.83 1.852-1.852 0-1.021-.83-1.852-1.852-1.852-1.021 0-1.852.83-1.852 1.852a.623.623 0 0 1-1.245 0 3.1 3.1 0 0 1 3.097-3.097z"></path></g></svg><div class="css-z9ms26">Needs advice</div><div class="css-6uh2e7">on</div><a href="/azure-service-bus" class="css-1pwtf47"><span title="Azure Service Bus" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/3980/Azure-Service-Bus.png" alt="Azure Service Bus" class="css-1rz3855"/></span><span class="css-i6njnm">Azure Service Bus</span></a><div class="css-6uh2e7"> and </div><a href="/rabbitmq" class="css-1pwtf47"><span title="RabbitMQ" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg" alt="RabbitMQ" class="css-1rz3855"/></span><span class="css-i6njnm">RabbitMQ</span></a></div><div class="css-1dp4k20"><div class="css-ztg526"><p>Hello dear developers, our company is starting a new project for a new Web App, and we are currently designing the Architecture (we will be using <span class="tool">.NET Core</span>). We want to embark on something new, so we are thinking about migrating from a monolithic perspective to a microservices perspective. We wish to containerize those microservices and make them independent from each other. Is it the best way for microservices to communicate with each other via ESB, or is there a new way of doing this? Maybe complementing with an API Gateway? Can you recommend something else different than the two tools I provided?</p> <p>We want something good for Cost/Benefit; performance should be high too (but not the primary constraint). </p> <p>Thank you very much in advance :)</p></div></div></div><a class="css-1srb7t4">See more</a></div><div class="css-1pz1q9u"><div class="css-1rla8dl">Replies <span>(2)</span></div><div class="css-1cqgl9p"><div class="css-1cm2u5n"><div class="css-lhxxg6"></div><div class="css-jyena0"></div><div class="css-s6ccv3"></div></div><div class="css-uw1ldh"><div class="css-4gnhqq"><div class="css-xkasvz"><div class="css-atv6j6"><div class="css-1m8tyev"><a href="/massimogiambona" title="Visit Profile" class="css-pvufaf"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div></a></div></div><div class="css-1vf0ygt"><div class="css-utnqcw">Massimo Giambona</div><div class="css-ds0hbm"><a href="/massimogiambona/decisions/104705749339116404" class="css-nil"><time>Aug 17, 2020</time> | 3 upvotes · 287.9K views </a></div></div></div></div><div class="css-nil"><div class="css-dg4ww9"><svg xmlns="http://www.w3.org/2000/svg" width="21" height="21" viewBox="0 0 21 21"><g fill="none" fill-rule="evenodd"><path fill="#068DFE" fill-rule="nonzero" d="M20.917 19.017c.188.545.05 1.136-.356 1.544a1.485 1.485 0 0 1-1.544.357l-4.196-1.442a10.3 10.3 0 0 1-4.536 1.062h-.016a10.207 10.207 0 0 1-7.191-2.949A10.199 10.199 0 0 1 0 10.436a10.228 10.228 0 0 1 3.006-7.428A10.23 10.23 0 0 1 10.437 0a10.199 10.199 0 0 1 7.153 3.077 10.208 10.208 0 0 1 2.95 7.208 10.3 10.3 0 0 1-1.063 4.536l1.441 4.195z"></path><path fill="#FFF" d="M10.221 15.937c-1.024 0-1.854-.905-1.854-2.021h3.709c0 1.116-.83 2.021-1.855 2.021zm1.721-3.083H8.5C8.408 11.813 6 10.904 6 8.303 6 5.527 8.02 4.056 10.22 4h.001c2.202.056 4.221 1.527 4.221 4.303 0 2.602-2.407 3.51-2.5 4.55z"></path></g></svg><div class="css-z9ms26">Recommends</div><a href="/azure-service-bus" class="css-1pwtf47"><span title="Azure Service Bus" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/3980/Azure-Service-Bus.png" alt="Azure Service Bus" class="css-1rz3855"/></span><span class="css-i6njnm">Azure Service Bus</span></a><a href="/signalr" class="css-1pwtf47"><span title="SignalR" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/4013/SignalR-logo.png" alt="SignalR" class="css-1rz3855"/></span><span class="css-i6njnm">SignalR</span></a></div><div class="css-1dp4k20"><div class="css-ztg526"><p>A Pro of Azure Service Bus is reliability and persistence: you can send message when receiver is offline; receiver can read it when it back online. A Cons is costs and message size. You can consider also <a href="https://dotnet.microsoft.com/apps/aspnet/signalr" rel="nofollow noopener" target="_blank">SignalR</a></p></div></div></div><a class="css-1srb7t4">See more</a></div></div><div class="css-1cqgl9p"><div class="css-1cm2u5n"><div class="css-lhxxg6"></div><div class="css-jyena0"></div></div><div class="css-uw1ldh"><div class="css-4gnhqq"><div class="css-xkasvz"><div class="css-atv6j6"><div class="css-1m8tyev"><a href="/mmadzia" title="Visit Profile" class="css-pvufaf"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div></a></div></div><div class="css-1vf0ygt"><div class="css-utnqcw">Matt Madzia</div><div class="css-ds0hbm"> at MotionCX<!-- --> · <a href="/mmadzia/decisions/104665529097694736" class="css-nil"><time>Aug 10, 2020</time> | 2 upvotes · 292.4K views </a></div></div></div></div><div class="css-nil"><div class="css-dg4ww9"><svg xmlns="http://www.w3.org/2000/svg" width="21" height="21" viewBox="0 0 21 21"><g fill="none" fill-rule="evenodd"><path fill="#068DFE" fill-rule="nonzero" d="M20.917 19.017c.188.545.05 1.136-.356 1.544a1.485 1.485 0 0 1-1.544.357l-4.196-1.442a10.3 10.3 0 0 1-4.536 1.062h-.016a10.207 10.207 0 0 1-7.191-2.949A10.199 10.199 0 0 1 0 10.436a10.228 10.228 0 0 1 3.006-7.428A10.23 10.23 0 0 1 10.437 0a10.199 10.199 0 0 1 7.153 3.077 10.208 10.208 0 0 1 2.95 7.208 10.3 10.3 0 0 1-1.063 4.536l1.441 4.195z"></path><path fill="#FFF" d="M10.221 15.937c-1.024 0-1.854-.905-1.854-2.021h3.709c0 1.116-.83 2.021-1.855 2.021zm1.721-3.083H8.5C8.408 11.813 6 10.904 6 8.303 6 5.527 8.02 4.056 10.22 4h.001c2.202.056 4.221 1.527 4.221 4.303 0 2.602-2.407 3.51-2.5 4.55z"></path></g></svg><div class="css-z9ms26">Recommends</div></div><div class="css-1dp4k20"><div class="css-ztg526"><p>There are many different messaging frameworks available for IPC use. It's not really a question of how "new" the technology is, but what you need it to do. <span class="tool">Azure Service Bus</span> can be a great service to use, but it can also take a lot of effort to administrate and maintain that can make it costly to use unless you need the more advanced features it offers for routing, sequencing, delivery, etc. I would recommend checking out this link to get a basic idea of different messaging architectures. These only cover Azure services, but there are many other solutions that use similar architectural models.</p> <p><a href="https://docs.microsoft.com/en-us/azure/event-grid/compare-messaging-services" rel="nofollow noopener" target="_blank">https://docs.microsoft.com/en-us/azure/event-grid/compare-messaging-services</a></p></div></div></div><a class="css-1srb7t4">See more</a></div></div><div class="css-gyrv08"></div></div></div><div class="css-yzfa9h"><div class="css-uw1ldh"><div class="css-4gnhqq"><div class="css-xkasvz"><div class="css-atv6j6"><div class="css-1m8tyev"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div></div></div><div class="css-1vf0ygt"><div class="css-utnqcw">MITHIRIDI PRASANTH</div><div class="css-ds0hbm">Software Engineer<!-- --> at LightMetrics<!-- --> · <a href="/mprasanth203581/decisions/104131613100808770" class="css-nil"><time>May 8, 2020</time> | 4 upvotes · 202.6K views </a></div></div></div></div><div class="css-nil"><div class="css-dg4ww9"><svg xmlns="http://www.w3.org/2000/svg" width="21" height="21" viewBox="0 0 21 21"><g fill="none"><path fill="#FF7E3F" d="M20.918 19.017l-1.442-4.195a10.3 10.3 0 0 0 1.062-4.537 10.208 10.208 0 0 0-2.949-7.207A10.199 10.199 0 0 0 10.436 0a10.23 10.23 0 0 0-7.428 3.006A10.228 10.228 0 0 0 0 10.437a10.199 10.199 0 0 0 3.077 7.153 10.207 10.207 0 0 0 7.191 2.95h.016a10.3 10.3 0 0 0 4.537-1.063l4.195 1.442a1.485 1.485 0 0 0 1.543-.357c.408-.408.545-.999.358-1.544z"></path><path fill="#FFF" stroke="#FFF" stroke-width=".55" d="M10.168 14.702c.35 0 .595 0 .623.622.028.623-.297.623-.623.623-.349 0-.607-.285-.622-.623-.015-.336.297-.622.622-.622zm0-9.465a3.1 3.1 0 0 1 3.097 3.097 3.103 3.103 0 0 1-2.474 3.034v1.543a.623.623 0 1 1-1.245 0V10.81c0-.344.278-.623.622-.623 1.021 0 1.852-.83 1.852-1.852 0-1.021-.83-1.852-1.852-1.852-1.021 0-1.852.83-1.852 1.852a.623.623 0 0 1-1.245 0 3.1 3.1 0 0 1 3.097-3.097z"></path></g></svg><div class="css-z9ms26">Needs advice</div><div class="css-6uh2e7">on</div><a href="/amazon-mq" class="css-1pwtf47"><span title="Amazon MQ" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/7971/FrshWMKt_400x400.jpg" alt="Amazon MQ" class="css-1rz3855"/></span><span class="css-i6njnm">Amazon MQ</span></a><div class="css-6uh2e7"> and </div><a href="/amazon-sqs" class="css-1pwtf47"><span title="Amazon SQS" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/395/amazon-sqs.png" alt="Amazon SQS" class="css-1rz3855"/></span><span class="css-i6njnm">Amazon SQS</span></a><div class="css-6uh2e7">in</div><a itemscope="" itemType="http://schema.org/Organization" itemProp="url" href="/mprasanth203581/my-stack" target="_blank" class="css-1j2w1cg"><svg class="css-lnzci0" width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><path d="M2.4 0h19.2A2.4 2.4 0 0 1 24 2.4V17H0V2.4A2.4 2.4 0 0 1 2.4 0z" id="path-1"></path><path d="M0 0h24v4.6A2.4 2.4 0 0 1 21.6 7H2.4A2.4 2.4 0 0 1 0 4.6V0z" id="path-3"></path></defs><g id="Page-1" fill="none" fill-rule="evenodd"><g id="default-stack-icon"><g id="Group"><g id="b-link" fill="#333" fill-rule="nonzero"><path d="M2.4 0h19.2A2.4 2.4 0 0 1 24 2.4V17H0V2.4A2.4 2.4 0 0 1 2.4 0z" id="b"></path></g><g id="Clipped"><mask id="mask-2" fill="#fff"><use xlink:href="#path-1"></use></mask><path d="M2.704 1.967c0-.14.11-.253.249-.253h1.53c.138 0 .25.11.25.253v1.552a.25.25 0 0 1-.25.252h-1.53a.249.249 0 0 1-.249-.252V1.967zm0 3.428c0-.14.11-.252.249-.252h1.53c.138 0 .25.11.25.252v1.553a.25.25 0 0 1-.25.252h-1.53a.249.249 0 0 1-.249-.252V5.395zm0 3.429c0-.14.11-.253.249-.253h1.53a.25.25 0 0 1 .25.253v1.552a.25.25 0 0 1-.25.253h-1.53a.249.249 0 0 1-.249-.253V8.824zm0 3.428c0-.14.11-.252.249-.252h1.53c.138 0 .25.11.25.252v1.553a.25.25 0 0 1-.25.252h-1.53a.249.249 0 0 1-.249-.252v-1.553zM10.14 1.967c0-.14.11-.253.25-.253h1.53c.138 0 .249.11.249.253v1.552c0 .14-.109.252-.249.252h-1.53a.249.249 0 0 1-.25-.252V1.967zm0 3.428c0-.14.11-.252.25-.252h1.53c.138 0 .249.11.249.252v1.553c0 .14-.109.252-.249.252h-1.53a.249.249 0 0 1-.25-.252V5.395zm0 3.429c0-.14.11-.253.25-.253h1.53a.25.25 0 0 1 .249.253v1.552a.25.25 0 0 1-.249.253h-1.53a.249.249 0 0 1-.25-.253V8.824zm0 3.428c0-.14.11-.252.25-.252h1.53c.138 0 .249.11.249.252v1.553c0 .14-.109.252-.249.252h-1.53a.249.249 0 0 1-.25-.252v-1.553zM6.423 1.967a.25.25 0 0 1 .248-.253h1.531a.25.25 0 0 1 .249.253v1.552a.25.25 0 0 1-.249.252h-1.53a.249.249 0 0 1-.25-.252V1.967h.001zm0 3.428c0-.14.109-.252.248-.252h1.531a.25.25 0 0 1 .249.252v1.553a.25.25 0 0 1-.249.252h-1.53a.249.249 0 0 1-.25-.252V5.395h.001zm0 3.429a.25.25 0 0 1 .248-.253h1.531a.25.25 0 0 1 .249.253v1.552a.25.25 0 0 1-.249.253h-1.53a.249.249 0 0 1-.25-.253V8.824h.001zm0 3.428c0-.14.109-.252.248-.252h1.531a.25.25 0 0 1 .249.252v1.553a.25.25 0 0 1-.249.252h-1.53a.249.249 0 0 1-.25-.252v-1.553h.001zM13.86 1.967c0-.14.108-.253.248-.253h1.53c.138 0 .25.11.25.253v1.552a.25.25 0 0 1-.25.252h-1.53a.249.249 0 0 1-.249-.252V1.967h.001zm0 3.428c0-.14.108-.252.248-.252h1.53c.138 0 .25.11.25.252v1.553a.25.25 0 0 1-.25.252h-1.53a.249.249 0 0 1-.249-.252V5.395h.001zm0 3.429c0-.14.108-.253.248-.253h1.53a.25.25 0 0 1 .25.253v1.552a.25.25 0 0 1-.25.253h-1.53a.249.249 0 0 1-.249-.253V8.824h.001zm3.717-6.857c0-.14.11-.253.25-.253h1.53a.25.25 0 0 1 .249.253v1.552a.25.25 0 0 1-.25.252h-1.53a.249.249 0 0 1-.249-.252V1.967zm0 3.428c0-.14.11-.252.25-.252h1.53a.25.25 0 0 1 .249.252v1.553a.25.25 0 0 1-.25.252h-1.53a.249.249 0 0 1-.249-.252V5.395zm0 3.429c0-.14.11-.253.25-.253h1.53a.25.25 0 0 1 .249.253v1.552a.25.25 0 0 1-.25.253h-1.53a.249.249 0 0 1-.249-.253V8.824z" id="Shape" fill="#919191" fill-rule="nonzero" opacity=".404" mask="url(#mask-2)"></path></g></g><g id="d-link" transform="translate(0 17)" fill="#FFF" fill-rule="nonzero"><path d="M0 0h24v4.6A2.4 2.4 0 0 1 21.6 7H2.4A2.4 2.4 0 0 1 0 4.6V0z" id="d"></path></g><g id="Clipped" transform="translate(0 17)"><mask id="mask-4" fill="#fff"><use xlink:href="#path-3"></use></mask><rect id="Rectangle-path" fill="#E5E5E5" fill-rule="nonzero" mask="url(#mask-4)" x="5.408" y="2" width="13.521" height="1.717" rx=".859"></rect></g></g></g></svg><div itemProp="name" class="css-1b2ktnx">My Stack</div></a></div><div class="css-1dp4k20"><div class="css-ztg526"><p>I want to schedule a message. <span class="tool">Amazon SQS</span> provides a delay of 15 minutes, but I want it in some hours.</p> <p>Example: Let's say a Message1 is consumed by a consumer A but somehow it failed inside the consumer. I would want to put it in a queue and retry after 4hrs. Can I do this in <span class="tool">Amazon MQ</span>? I have seen in some Amazon MQ videos saying scheduling messages can be done. But, I'm not sure how.</p></div></div></div><a class="css-1srb7t4">See more</a></div><div class="css-1pz1q9u"><div class="css-1rla8dl">Replies <span>(1)</span></div><div class="css-1cqgl9p"><div class="css-1cm2u5n"><div class="css-lhxxg6"></div><div class="css-jyena0"></div></div><div class="css-uw1ldh"><div class="css-4gnhqq"><div class="css-xkasvz"><div class="css-atv6j6"><div class="css-1m8tyev"><a href="/aparedes" title="Visit Profile" class="css-pvufaf"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div></a></div></div><div class="css-1vf0ygt"><div class="css-utnqcw">Andres Paredes</div><div class="css-ds0hbm">Lead Senior Software Engineer<!-- --> at InTouch Technology<!-- --> · <a href="/aparedes/decisions/104281867548975543" class="css-nil"><time>Jun 3, 2020</time> | 1 upvotes · 161.1K views </a></div></div></div></div><div class="css-nil"><div class="css-dg4ww9"><svg xmlns="http://www.w3.org/2000/svg" width="21" height="21" viewBox="0 0 21 21"><g fill="none" fill-rule="evenodd"><path fill="#068DFE" fill-rule="nonzero" d="M20.917 19.017c.188.545.05 1.136-.356 1.544a1.485 1.485 0 0 1-1.544.357l-4.196-1.442a10.3 10.3 0 0 1-4.536 1.062h-.016a10.207 10.207 0 0 1-7.191-2.949A10.199 10.199 0 0 1 0 10.436a10.228 10.228 0 0 1 3.006-7.428A10.23 10.23 0 0 1 10.437 0a10.199 10.199 0 0 1 7.153 3.077 10.208 10.208 0 0 1 2.95 7.208 10.3 10.3 0 0 1-1.063 4.536l1.441 4.195z"></path><path fill="#FFF" d="M10.221 15.937c-1.024 0-1.854-.905-1.854-2.021h3.709c0 1.116-.83 2.021-1.855 2.021zm1.721-3.083H8.5C8.408 11.813 6 10.904 6 8.303 6 5.527 8.02 4.056 10.22 4h.001c2.202.056 4.221 1.527 4.221 4.303 0 2.602-2.407 3.51-2.5 4.55z"></path></g></svg><div class="css-z9ms26">Recommends</div><a href="/amazon-sqs" class="css-1pwtf47"><span title="Amazon SQS" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/395/amazon-sqs.png" alt="Amazon SQS" class="css-1rz3855"/></span><span class="css-i6njnm">Amazon SQS</span></a></div><div class="css-1dp4k20"><div class="css-ztg526"><p>Mithiridi, I believe you are talking about two different things. 1. If you need to process messages with delays of more 15m or at specific times, it's not a good idea to use queues, independently of tool SQM, Rabbit or Amazon MQ. you should considerer another approach using a scheduled job. 2. For dead queues and policy retries RabbitMQ, for example, doesn't support your use case. <a href="https://medium.com/@kiennguyen88/rabbitmq-delay-retry-schedule-with-dead-letter-exchange-31fb25a440fc" rel="nofollow noopener" target="_blank">https://medium.com/@kiennguyen88/rabbitmq-delay-retry-schedule-with-dead-letter-exchange-31fb25a440fc</a> I'm not sure if that is possible SNS/SQS support, they have a maximum delay for delivery (maxDelayTarget) in seconds but it's not clear the number. You can check this out: <a href="https://docs.aws.amazon.com/sns/latest/dg/sns-message-delivery-retries.html" rel="nofollow noopener" target="_blank">https://docs.aws.amazon.com/sns/latest/dg/sns-message-delivery-retries.html</a></p></div></div></div><a class="css-1srb7t4">See more</a></div></div><div class="css-gyrv08"></div></div></div><div class="css-yzfa9h"><div class="css-uw1ldh"><div class="css-4gnhqq"><div class="css-xkasvz"><div class="css-atv6j6"><div class="css-1m8tyev"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div></div></div><div class="css-1vf0ygt"><div class="css-utnqcw">viradiya sagar</div><div class="css-ds0hbm"><a href="/sagarviradiya20082522/decisions/103984675742758604" class="css-nil"><time>Apr 12, 2020</time> | 9 upvotes · 654.9K views </a></div></div></div></div><div class="css-nil"><div class="css-dg4ww9"><svg xmlns="http://www.w3.org/2000/svg" width="21" height="21" viewBox="0 0 21 21"><g fill="none"><path fill="#FF7E3F" d="M20.918 19.017l-1.442-4.195a10.3 10.3 0 0 0 1.062-4.537 10.208 10.208 0 0 0-2.949-7.207A10.199 10.199 0 0 0 10.436 0a10.23 10.23 0 0 0-7.428 3.006A10.228 10.228 0 0 0 0 10.437a10.199 10.199 0 0 0 3.077 7.153 10.207 10.207 0 0 0 7.191 2.95h.016a10.3 10.3 0 0 0 4.537-1.063l4.195 1.442a1.485 1.485 0 0 0 1.543-.357c.408-.408.545-.999.358-1.544z"></path><path fill="#FFF" stroke="#FFF" stroke-width=".55" d="M10.168 14.702c.35 0 .595 0 .623.622.028.623-.297.623-.623.623-.349 0-.607-.285-.622-.623-.015-.336.297-.622.622-.622zm0-9.465a3.1 3.1 0 0 1 3.097 3.097 3.103 3.103 0 0 1-2.474 3.034v1.543a.623.623 0 1 1-1.245 0V10.81c0-.344.278-.623.622-.623 1.021 0 1.852-.83 1.852-1.852 0-1.021-.83-1.852-1.852-1.852-1.021 0-1.852.83-1.852 1.852a.623.623 0 0 1-1.245 0 3.1 3.1 0 0 1 3.097-3.097z"></path></g></svg><div class="css-z9ms26">Needs advice</div><div class="css-6uh2e7">on</div><a href="/kafka" class="css-1pwtf47"><span title="Kafka" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/1063/kazUJooF_400x400.jpg" alt="Kafka" class="css-1rz3855"/></span><span class="css-i6njnm">Kafka</span></a><a href="/rabbitmq" class="css-1pwtf47"><span title="RabbitMQ" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg" alt="RabbitMQ" class="css-1rz3855"/></span><span class="css-i6njnm">RabbitMQ</span></a><div class="css-6uh2e7"> and </div><a href="/redis" class="css-1pwtf47"><span title="Redis" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/1031/default_cbce472cd134adc6688572f999e9122b9657d4ba.png" alt="Redis" class="css-1rz3855"/></span><span class="css-i6njnm">Redis</span></a></div><div class="css-1dp4k20"><div class="css-ztg526"><p>We are going to develop a microservices-based application. It consists of <span class="tool">AngularJS</span>, <span class="tool">ASP.NET Core</span>, and <span class="tool">MSSQL</span>.</p> <p>We have 3 types of microservices. Emailservice, Filemanagementservice, Filevalidationservice</p> <p>I am a beginner in microservices. But I have read about <span class="tool">RabbitMQ</span>, but come to know that there are <span class="tool">Redis</span> and <span class="tool">Kafka</span> also in the market. So, I want to know which is best.</p></div></div></div><a class="css-1srb7t4">See more</a></div><div class="css-1pz1q9u"><div class="css-1rla8dl">Replies <span>(4)</span></div><div class="css-1cqgl9p"><div class="css-1cm2u5n"><div class="css-lhxxg6"></div><div class="css-jyena0"></div><div class="css-s6ccv3"></div></div><div class="css-uw1ldh"><div class="css-4gnhqq"><div class="css-xkasvz"><div class="css-atv6j6"><div class="css-1m8tyev"><a href="/alurimahee" title="Visit Profile" class="css-pvufaf"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div></a></div></div><div class="css-1vf0ygt"><div class="css-utnqcw">Maheedhar Aluri</div><div class="css-ds0hbm">Lead Architect<!-- --> · <a href="/alurimahee/decisions/104000814039450831" class="css-nil"><time>Apr 15, 2020</time> | 8 upvotes · 582.6K views </a></div></div></div></div><div class="css-nil"><div class="css-dg4ww9"><svg xmlns="http://www.w3.org/2000/svg" width="21" height="21" viewBox="0 0 21 21"><g fill="none" fill-rule="evenodd"><path fill="#068DFE" fill-rule="nonzero" d="M20.917 19.017c.188.545.05 1.136-.356 1.544a1.485 1.485 0 0 1-1.544.357l-4.196-1.442a10.3 10.3 0 0 1-4.536 1.062h-.016a10.207 10.207 0 0 1-7.191-2.949A10.199 10.199 0 0 1 0 10.436a10.228 10.228 0 0 1 3.006-7.428A10.23 10.23 0 0 1 10.437 0a10.199 10.199 0 0 1 7.153 3.077 10.208 10.208 0 0 1 2.95 7.208 10.3 10.3 0 0 1-1.063 4.536l1.441 4.195z"></path><path fill="#FFF" d="M10.221 15.937c-1.024 0-1.854-.905-1.854-2.021h3.709c0 1.116-.83 2.021-1.855 2.021zm1.721-3.083H8.5C8.408 11.813 6 10.904 6 8.303 6 5.527 8.02 4.056 10.22 4h.001c2.202.056 4.221 1.527 4.221 4.303 0 2.602-2.407 3.51-2.5 4.55z"></path></g></svg><div class="css-z9ms26">Recommends</div><a href="/kafka" class="css-1pwtf47"><span title="Kafka" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/1063/kazUJooF_400x400.jpg" alt="Kafka" class="css-1rz3855"/></span><span class="css-i6njnm">Kafka</span></a></div><div class="css-1dp4k20"><div class="css-ztg526"><p>Kafka is an Enterprise Messaging Framework whereas Redis is an Enterprise Cache Broker, in-memory database and high performance database.Both are having their own advantages, but they are different in usage and implementation. Now if you are creating microservices check the user consumption volumes, its generating logs, scalability, systems to be integrated and so on. I feel for your scenario initially you can go with KAFKA bu as the throughput, consumption and other factors are scaling then gradually you can add Redis accordingly.</p></div></div></div><a class="css-1srb7t4">See more</a></div></div><div class="css-1cqgl9p"><div class="css-1cm2u5n"><div class="css-lhxxg6"></div><div class="css-jyena0"></div><div class="css-s6ccv3"></div></div><div class="css-uw1ldh"><div class="css-4gnhqq"><div class="css-xkasvz"><div class="css-atv6j6"><div class="css-1m8tyev"><a href="/robkraft1349" title="Visit Profile" class="css-pvufaf"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div></a></div></div><div class="css-1vf0ygt"><div class="css-utnqcw">Rob Kraft</div><div class="css-ds0hbm"><a href="/robkraft1349/decisions/104523613677586531" class="css-nil"><time>Jul 16, 2020</time> | 4 upvotes · 574.6K views </a></div></div></div></div><div class="css-nil"><div class="css-dg4ww9"><svg xmlns="http://www.w3.org/2000/svg" width="21" height="21" viewBox="0 0 21 21"><g fill="none" fill-rule="evenodd"><path fill="#068DFE" fill-rule="nonzero" d="M20.917 19.017c.188.545.05 1.136-.356 1.544a1.485 1.485 0 0 1-1.544.357l-4.196-1.442a10.3 10.3 0 0 1-4.536 1.062h-.016a10.207 10.207 0 0 1-7.191-2.949A10.199 10.199 0 0 1 0 10.436a10.228 10.228 0 0 1 3.006-7.428A10.23 10.23 0 0 1 10.437 0a10.199 10.199 0 0 1 7.153 3.077 10.208 10.208 0 0 1 2.95 7.208 10.3 10.3 0 0 1-1.063 4.536l1.441 4.195z"></path><path fill="#FFF" d="M10.221 15.937c-1.024 0-1.854-.905-1.854-2.021h3.709c0 1.116-.83 2.021-1.855 2.021zm1.721-3.083H8.5C8.408 11.813 6 10.904 6 8.303 6 5.527 8.02 4.056 10.22 4h.001c2.202.056 4.221 1.527 4.221 4.303 0 2.602-2.407 3.51-2.5 4.55z"></path></g></svg><div class="css-z9ms26">Recommends</div><a href="/angular" class="css-1pwtf47"><span title="Angular" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/3745/cb8U-gL6_400x400.jpg" alt="Angular" class="css-1rz3855"/></span><span class="css-i6njnm">Angular</span></a></div><div class="css-1dp4k20"><div class="css-ztg526"><p>I first recommend that you choose Angular over AngularJS if you are starting something new. AngularJs is no longer getting enhancements, but perhaps you meant Angular. Regarding microservices, I recommend considering microservices when you have different development teams for each service that may want to use different programming languages and backend data stores. If it is all the same team, same code language, and same data store I would not use microservices. I might use a message queue, in which case RabbitMQ is a good one. But you may also be able to simply write your own in which you write a record in a table in MSSQL and one of your services reads the record from the table and processes it. The most challenging part of doing it yourself is writing a service that does a good job of reading the queue without reading the same message multiple times or missing a message; and that is where RabbitMQ can help.</p></div></div></div><a class="css-1srb7t4">See more</a></div></div><div class="css-1cqgl9p"><div class="css-1cm2u5n"><div class="css-lhxxg6"></div><div class="css-jyena0"></div><div class="css-s6ccv3"></div></div><div class="css-uw1ldh"><div class="css-4gnhqq"><div class="css-xkasvz"><div class="css-atv6j6"><div class="css-1m8tyev"><a href="/amitmormail7948" title="Visit Profile" class="css-pvufaf"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div></a></div></div><div class="css-1vf0ygt"><div class="css-utnqcw">Amit Mor</div><div class="css-ds0hbm">Software Architect<!-- --> at Payoneer<!-- --> · <a href="/amitmormail7948/decisions/104103594475363521" class="css-nil"><time>May 3, 2020</time> | 3 upvotes · 576.9K views </a></div></div></div></div><div class="css-nil"><div class="css-dg4ww9"><svg xmlns="http://www.w3.org/2000/svg" width="21" height="21" viewBox="0 0 21 21"><g fill="none" fill-rule="evenodd"><path fill="#068DFE" fill-rule="nonzero" d="M20.917 19.017c.188.545.05 1.136-.356 1.544a1.485 1.485 0 0 1-1.544.357l-4.196-1.442a10.3 10.3 0 0 1-4.536 1.062h-.016a10.207 10.207 0 0 1-7.191-2.949A10.199 10.199 0 0 1 0 10.436a10.228 10.228 0 0 1 3.006-7.428A10.23 10.23 0 0 1 10.437 0a10.199 10.199 0 0 1 7.153 3.077 10.208 10.208 0 0 1 2.95 7.208 10.3 10.3 0 0 1-1.063 4.536l1.441 4.195z"></path><path fill="#FFF" d="M10.221 15.937c-1.024 0-1.854-.905-1.854-2.021h3.709c0 1.116-.83 2.021-1.855 2.021zm1.721-3.083H8.5C8.408 11.813 6 10.904 6 8.303 6 5.527 8.02 4.056 10.22 4h.001c2.202.056 4.221 1.527 4.221 4.303 0 2.602-2.407 3.51-2.5 4.55z"></path></g></svg><div class="css-z9ms26">Recommends</div><a href="/kafka" class="css-1pwtf47"><span title="Kafka" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/1063/kazUJooF_400x400.jpg" alt="Kafka" class="css-1rz3855"/></span><span class="css-i6njnm">Kafka</span></a></div><div class="css-1dp4k20"><div class="css-ztg526"><p>I think something is missing here and you should consider answering it to yourself. You are building a couple of services. Why are you considering event-sourcing architecture using Message Brokers such as the above? Won't a simple REST service based arch suffice? Read about CQRS and the problems it entails (state vs command impedance for example). Do you need Pub/Sub or Push/Pull? Is queuing of messages enough or would you need querying or filtering of messages before consumption? Also, someone would have to manage these brokers (unless using managed, cloud provider based solution), automate their deployment, someone would need to take care of backups, clustering if needed, disaster recovery, etc. I have a good past experience in terms of manageability/devops of the above options with Kafka and Redis, not so much with RabbitMQ. Both are very performant. But also note that Redis is not a pure message broker (at time of writing) but more of a general purpose in-memory key-value store. Kafka nowadays is much more than a distributed message broker. Long story short. In my taste, you should go with a minialistic approach and try to avoid either of them if you can, especially if your architecture does not fall nicely into event sourcing. If not I'd examine Kafka. If you need more capabilities than I'd consider Redis and use it for all sorts of other things such as a cache. </p></div></div></div><a class="css-1srb7t4">See more</a></div></div><div class="css-1cqgl9p"><div class="css-1cm2u5n"><div class="css-lhxxg6"></div><div class="css-jyena0"></div></div><div class="css-uw1ldh"><div class="css-4gnhqq"><div class="css-xkasvz"><div class="css-atv6j6"><div class="css-1m8tyev"><a href="/tehsphinx" title="Visit Profile" class="css-pvufaf"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div></a></div></div><div class="css-1vf0ygt"><div class="css-utnqcw">Gabriel Nelle</div><div class="css-ds0hbm"><a href="/tehsphinx/decisions/104455277634556304" class="css-nil"><time>Jul 4, 2020</time> | 3 upvotes · 578.3K views </a></div></div></div></div><div class="css-nil"><div class="css-dg4ww9"><svg xmlns="http://www.w3.org/2000/svg" width="21" height="21" viewBox="0 0 21 21"><g fill="none" fill-rule="evenodd"><path fill="#068DFE" fill-rule="nonzero" d="M20.917 19.017c.188.545.05 1.136-.356 1.544a1.485 1.485 0 0 1-1.544.357l-4.196-1.442a10.3 10.3 0 0 1-4.536 1.062h-.016a10.207 10.207 0 0 1-7.191-2.949A10.199 10.199 0 0 1 0 10.436a10.228 10.228 0 0 1 3.006-7.428A10.23 10.23 0 0 1 10.437 0a10.199 10.199 0 0 1 7.153 3.077 10.208 10.208 0 0 1 2.95 7.208 10.3 10.3 0 0 1-1.063 4.536l1.441 4.195z"></path><path fill="#FFF" d="M10.221 15.937c-1.024 0-1.854-.905-1.854-2.021h3.709c0 1.116-.83 2.021-1.855 2.021zm1.721-3.083H8.5C8.408 11.813 6 10.904 6 8.303 6 5.527 8.02 4.056 10.22 4h.001c2.202.056 4.221 1.527 4.221 4.303 0 2.602-2.407 3.51-2.5 4.55z"></path></g></svg><div class="css-z9ms26">Recommends</div><a href="/nats" class="css-1pwtf47"><span title="NATS" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/2066/nats-icon-color.png" alt="NATS" class="css-1rz3855"/></span><span class="css-i6njnm">NATS</span></a></div><div class="css-1dp4k20"><div class="css-ztg526"><p>We found that the CNCF landscape is a good advisor when working going into the cloud / microservices space: <a href="https://landscape.cncf.io/fullscreen=yes" rel="nofollow noopener" target="_blank">https://landscape.cncf.io/fullscreen=yes</a>. When choosing a technology one important criteria to me is if it is cloud native or not. Neither Redis, RabbitMQ nor Kafka is cloud native. The try to adapt but will be replaced eventually with technologies that are cloud native.</p> <p>We have gone with NATS and have never looked back. We haven't spend a single minute on server maintainance in the last year and the setup of a cluster is way too easy. With the new features NATS incorporates now (and the ones still on the roadmap) it is already and will be sooo much mure than Redis, RabbitMQ and Kafka are. It can replace service discovery, load balancing, global multiclusters and failover, etc, etc.</p> <p>Your thought might be: But I don't need all of that! Well, at the same time it is much more leightweight than Redis, RabbitMQ and especially Kafka.</p></div></div></div><a class="css-1srb7t4">See more</a></div></div><div class="css-gyrv08"></div></div></div><div class="css-yzfa9h"><div class="css-uw1ldh"><div class="css-4gnhqq"><div class="css-xkasvz"><div class="css-atv6j6"><div class="css-1m8tyev"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div></div></div><div class="css-1vf0ygt"><div class="css-utnqcw">Ishfaq haider</div><div class="css-ds0hbm"><a href="/ishfaqer2528/decisions/103736739744008380" class="css-nil"><time>Feb 28, 2020</time> | 4 upvotes · 532.7K views </a></div></div></div></div><div class="css-nil"><div class="css-dg4ww9"><svg xmlns="http://www.w3.org/2000/svg" width="21" height="21" viewBox="0 0 21 21"><g fill="none"><path fill="#FF7E3F" d="M20.918 19.017l-1.442-4.195a10.3 10.3 0 0 0 1.062-4.537 10.208 10.208 0 0 0-2.949-7.207A10.199 10.199 0 0 0 10.436 0a10.23 10.23 0 0 0-7.428 3.006A10.228 10.228 0 0 0 0 10.437a10.199 10.199 0 0 0 3.077 7.153 10.207 10.207 0 0 0 7.191 2.95h.016a10.3 10.3 0 0 0 4.537-1.063l4.195 1.442a1.485 1.485 0 0 0 1.543-.357c.408-.408.545-.999.358-1.544z"></path><path fill="#FFF" stroke="#FFF" stroke-width=".55" d="M10.168 14.702c.35 0 .595 0 .623.622.028.623-.297.623-.623.623-.349 0-.607-.285-.622-.623-.015-.336.297-.622.622-.622zm0-9.465a3.1 3.1 0 0 1 3.097 3.097 3.103 3.103 0 0 1-2.474 3.034v1.543a.623.623 0 1 1-1.245 0V10.81c0-.344.278-.623.622-.623 1.021 0 1.852-.83 1.852-1.852 0-1.021-.83-1.852-1.852-1.852-1.021 0-1.852.83-1.852 1.852a.623.623 0 0 1-1.245 0 3.1 3.1 0 0 1 3.097-3.097z"></path></g></svg><div class="css-z9ms26">Needs advice</div><div class="css-6uh2e7">on</div><a href="/kafka" class="css-1pwtf47"><span title="Kafka" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/1063/kazUJooF_400x400.jpg" alt="Kafka" class="css-1rz3855"/></span><span class="css-i6njnm">Kafka</span></a><div class="css-6uh2e7"> and </div><a href="/rabbitmq" class="css-1pwtf47"><span title="RabbitMQ" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg" alt="RabbitMQ" class="css-1rz3855"/></span><span class="css-i6njnm">RabbitMQ</span></a></div><div class="css-1dp4k20"><div class="css-ztg526"><p>Our backend application is sending some external messages to a third party application at the end of each backend (CRUD) API call (from UI) and these external messages take too much extra time (message building, processing, then sent to the third party and log success/failure), UI application has no concern to these extra third party messages.</p> <p>So currently we are sending these third party messages by creating a new child thread at end of each REST API call so UI application doesn't wait for these extra third party API calls.</p> <p>I want to integrate Apache Kafka for these extra third party API calls, so I can also retry on failover third party API calls in a queue(currently third party messages are sending from multiple threads at the same time which uses too much processing and resources) and logging, etc.</p> <p>Question 1: Is this a use case of a message broker?</p> <p>Question 2: If it is then Kafka vs RabitMQ which is the better?</p></div></div></div><a class="css-1srb7t4">See more</a></div><div class="css-1pz1q9u"><div class="css-1rla8dl">Replies <span>(4)</span></div><div class="css-1cqgl9p"><div class="css-1cm2u5n"><div class="css-lhxxg6"></div><div class="css-jyena0"></div><div class="css-s6ccv3"></div></div><div class="css-uw1ldh"><div class="css-4gnhqq"><div class="css-xkasvz"><div class="css-atv6j6"><div class="css-1m8tyev"><a href="/tarunbatra" title="Visit Profile" class="css-pvufaf"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div></a></div></div><div class="css-1vf0ygt"><div class="css-utnqcw">Tarun Batra</div><div class="css-ds0hbm">Senior Software Developer<!-- --> at Okta<!-- --> · <a href="/tarunbatra/decisions/103743340677504400" class="css-nil"><time>Feb 29, 2020</time> | 7 upvotes · 529.3K views </a></div></div></div></div><div class="css-nil"><div class="css-dg4ww9"><svg xmlns="http://www.w3.org/2000/svg" width="21" height="21" viewBox="0 0 21 21"><g fill="none" fill-rule="evenodd"><path fill="#068DFE" fill-rule="nonzero" d="M20.917 19.017c.188.545.05 1.136-.356 1.544a1.485 1.485 0 0 1-1.544.357l-4.196-1.442a10.3 10.3 0 0 1-4.536 1.062h-.016a10.207 10.207 0 0 1-7.191-2.949A10.199 10.199 0 0 1 0 10.436a10.228 10.228 0 0 1 3.006-7.428A10.23 10.23 0 0 1 10.437 0a10.199 10.199 0 0 1 7.153 3.077 10.208 10.208 0 0 1 2.95 7.208 10.3 10.3 0 0 1-1.063 4.536l1.441 4.195z"></path><path fill="#FFF" d="M10.221 15.937c-1.024 0-1.854-.905-1.854-2.021h3.709c0 1.116-.83 2.021-1.855 2.021zm1.721-3.083H8.5C8.408 11.813 6 10.904 6 8.303 6 5.527 8.02 4.056 10.22 4h.001c2.202.056 4.221 1.527 4.221 4.303 0 2.602-2.407 3.51-2.5 4.55z"></path></g></svg><div class="css-z9ms26">Recommends</div><a href="/rabbitmq" class="css-1pwtf47"><span title="RabbitMQ" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg" alt="RabbitMQ" class="css-1rz3855"/></span><span class="css-i6njnm">RabbitMQ</span></a></div><div class="css-1dp4k20"><div class="css-ztg526"><p>RabbitMQ is great for queuing and retrying. You can send the requests to your backend which will further queue these requests in RabbitMQ (or Kafka, too). The consumer on the other end can take care of processing . For a detailed analysis, check this blog about <a href="https://tarunbatra.com/blog/comparison/How-to-choose-between-Kafka-and-RabbitMQ/" rel="nofollow noopener" target="_blank">choosing between Kafka and RabbitMQ</a>.</p></div><div class="css-13nf4of"><svg class="css-xd3exe" xmlns="http://www.w3.org/2000/svg" width="11" height="11" viewBox="0 0 11 11"><g fill="#49A8F9" fill-rule="evenodd"><path d="M10.5 0h-4a.5.5 0 0 0 0 1h2.793L4.146 6.146a.5.5 0 1 0 .708.708L10 1.707V4.5a.5.5 0 0 0 1 0v-4a.5.5 0 0 0-.5-.5"></path><path d="M8.5 5a.5.5 0 0 0-.5.5V10H1V3h4.5a.5.5 0 0 0 0-1h-5a.5.5 0 0 0-.5.5v8a.5.5 0 0 0 .5.5h8a.5.5 0 0 0 .5-.5v-5a.5.5 0 0 0-.5-.5"></path></g></svg><a href="https://tarunbatra.com/blog/comparison/How-to-choose-between-Kafka-and-RabbitMQ" title="How to choose between Kafka and RabbitMQ" class="css-nil">How to choose between Kafka and RabbitMQ</a></div></div></div><a class="css-1srb7t4">See more</a></div></div><div class="css-1cqgl9p"><div class="css-1cm2u5n"><div class="css-lhxxg6"></div><div class="css-jyena0"></div><div class="css-s6ccv3"></div></div><div class="css-uw1ldh"><div class="css-4gnhqq"><div class="css-xkasvz"><div class="css-atv6j6"><div class="css-1m8tyev"><a href="/trydalch" title="Visit Profile" class="css-pvufaf"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div></a></div></div><div class="css-1vf0ygt"><div class="css-utnqcw">Trevor Rydalch</div><div class="css-ds0hbm">Software Engineer<!-- --> at InsideSales.com<!-- --> · <a href="/trydalch/decisions/103738714930841306" class="css-nil"><time>Feb 28, 2020</time> | 6 upvotes · 529.2K views </a></div></div></div></div><div class="css-nil"><div class="css-dg4ww9"><svg xmlns="http://www.w3.org/2000/svg" width="21" height="21" viewBox="0 0 21 21"><g fill="none" fill-rule="evenodd"><path fill="#068DFE" fill-rule="nonzero" d="M20.917 19.017c.188.545.05 1.136-.356 1.544a1.485 1.485 0 0 1-1.544.357l-4.196-1.442a10.3 10.3 0 0 1-4.536 1.062h-.016a10.207 10.207 0 0 1-7.191-2.949A10.199 10.199 0 0 1 0 10.436a10.228 10.228 0 0 1 3.006-7.428A10.23 10.23 0 0 1 10.437 0a10.199 10.199 0 0 1 7.153 3.077 10.208 10.208 0 0 1 2.95 7.208 10.3 10.3 0 0 1-1.063 4.536l1.441 4.195z"></path><path fill="#FFF" d="M10.221 15.937c-1.024 0-1.854-.905-1.854-2.021h3.709c0 1.116-.83 2.021-1.855 2.021zm1.721-3.083H8.5C8.408 11.813 6 10.904 6 8.303 6 5.527 8.02 4.056 10.22 4h.001c2.202.056 4.221 1.527 4.221 4.303 0 2.602-2.407 3.51-2.5 4.55z"></path></g></svg><div class="css-z9ms26">Recommends</div><a href="/rabbitmq" class="css-1pwtf47"><span title="RabbitMQ" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg" alt="RabbitMQ" class="css-1rz3855"/></span><span class="css-i6njnm">RabbitMQ</span></a></div><div class="css-1dp4k20"><div class="css-ztg526"><p>Well, first off, it's good practice to do as little non-UI work on the foreground thread as possible, regardless of whether the requests take a long time. You don't want the UI thread blocked.</p> <p>This sounds like a good use case for RabbitMQ. Primarily because you don't need each message processed by more than one consumer. If you wanted to process a single message more than once (say for different purposes), then Apache Kafka would be a much better fit as you can have multiple consumer groups consuming from the same topics independently.</p> <p>Have your API publish messages containing the data necessary for the third-party request to a Rabbit queue and have consumers reading off there. If it fails, you can either retry immediately, or publish to a deadletter queue where you can reprocess them whenever you want (shovel them back into the regular queue).</p></div></div></div><a class="css-1srb7t4">See more</a></div></div><div class="css-1cqgl9p"><div class="css-1cm2u5n"><div class="css-lhxxg6"></div><div class="css-jyena0"></div><div class="css-s6ccv3"></div></div><div class="css-uw1ldh"><div class="css-4gnhqq"><div class="css-xkasvz"><div class="css-atv6j6"><div class="css-1m8tyev"><a href="/freeart" title="Visit Profile" class="css-pvufaf"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div></a></div></div><div class="css-1vf0ygt"><div class="css-utnqcw">Paul Nekrasov</div><div class="css-ds0hbm"><a href="/freeart/decisions/103738987370372088" class="css-nil"><time>Feb 28, 2020</time> | 2 upvotes · 528.6K views </a></div></div></div></div><div class="css-nil"><div class="css-dg4ww9"><svg xmlns="http://www.w3.org/2000/svg" width="21" height="21" viewBox="0 0 21 21"><g fill="none" fill-rule="evenodd"><path fill="#068DFE" fill-rule="nonzero" d="M20.917 19.017c.188.545.05 1.136-.356 1.544a1.485 1.485 0 0 1-1.544.357l-4.196-1.442a10.3 10.3 0 0 1-4.536 1.062h-.016a10.207 10.207 0 0 1-7.191-2.949A10.199 10.199 0 0 1 0 10.436a10.228 10.228 0 0 1 3.006-7.428A10.23 10.23 0 0 1 10.437 0a10.199 10.199 0 0 1 7.153 3.077 10.208 10.208 0 0 1 2.95 7.208 10.3 10.3 0 0 1-1.063 4.536l1.441 4.195z"></path><path fill="#FFF" d="M10.221 15.937c-1.024 0-1.854-.905-1.854-2.021h3.709c0 1.116-.83 2.021-1.855 2.021zm1.721-3.083H8.5C8.408 11.813 6 10.904 6 8.303 6 5.527 8.02 4.056 10.22 4h.001c2.202.056 4.221 1.527 4.221 4.303 0 2.602-2.407 3.51-2.5 4.55z"></path></g></svg><div class="css-z9ms26">Recommends</div><a href="/rabbitmq" class="css-1pwtf47"><span title="RabbitMQ" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg" alt="RabbitMQ" class="css-1rz3855"/></span><span class="css-i6njnm">RabbitMQ</span></a></div><div class="css-1dp4k20"><div class="css-ztg526"><p>In my opinion RabbitMQ fits better in your case because you don’t have order in queue. You can process your messages in any order. You don’t need to store the data what you sent. Kafka is a persistent storage like the blockchain. RabbitMQ is a message broker. Kafka is not a good solution for the system with confirmations of the messages delivery.</p></div></div></div><a class="css-1srb7t4">See more</a></div></div><div class="css-1cqgl9p"><div class="css-1cm2u5n"><div class="css-lhxxg6"></div><div class="css-jyena0"></div></div><div class="css-uw1ldh"><div class="css-4gnhqq"><div class="css-xkasvz"><div class="css-atv6j6"><div class="css-1m8tyev"><a href="/guillaumemaka" title="Visit Profile" class="css-pvufaf"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div></a></div></div><div class="css-1vf0ygt"><div class="css-utnqcw">Guillaume Maka</div><div class="css-ds0hbm">Full Stack Web Developer<!-- --> · <a href="/guillaumemaka/decisions/103739412898159481" class="css-nil"><time>Feb 29, 2020</time> | 2 upvotes · 528.6K views </a></div></div></div></div><div class="css-nil"><div class="css-dg4ww9"><svg xmlns="http://www.w3.org/2000/svg" width="21" height="21" viewBox="0 0 21 21"><g fill="none" fill-rule="evenodd"><path fill="#068DFE" fill-rule="nonzero" d="M20.917 19.017c.188.545.05 1.136-.356 1.544a1.485 1.485 0 0 1-1.544.357l-4.196-1.442a10.3 10.3 0 0 1-4.536 1.062h-.016a10.207 10.207 0 0 1-7.191-2.949A10.199 10.199 0 0 1 0 10.436a10.228 10.228 0 0 1 3.006-7.428A10.23 10.23 0 0 1 10.437 0a10.199 10.199 0 0 1 7.153 3.077 10.208 10.208 0 0 1 2.95 7.208 10.3 10.3 0 0 1-1.063 4.536l1.441 4.195z"></path><path fill="#FFF" d="M10.221 15.937c-1.024 0-1.854-.905-1.854-2.021h3.709c0 1.116-.83 2.021-1.855 2.021zm1.721-3.083H8.5C8.408 11.813 6 10.904 6 8.303 6 5.527 8.02 4.056 10.22 4h.001c2.202.056 4.221 1.527 4.221 4.303 0 2.602-2.407 3.51-2.5 4.55z"></path></g></svg><div class="css-z9ms26">Recommends</div><a href="/rabbitmq" class="css-1pwtf47"><span title="RabbitMQ" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg" alt="RabbitMQ" class="css-1rz3855"/></span><span class="css-i6njnm">RabbitMQ</span></a></div><div class="css-1dp4k20"><div class="css-ztg526"><p>As far as I understand, Kafka is a like a persisted event state manager where you can plugin various source of data and transform/query them as event via a stream API. Regarding your use case I will consider using RabbitMQ if your intent is to implement service inter-communication kind of thing. RabbitMQ is a good choice for one-one publisher/subscriber (or consumer) and I think you can also have multiple consumers by configuring a fanout exchange. RabbitMQ provide also message retries, message cancellation, durable queue, message requeue, message ACK.... </p></div></div></div><a class="css-1srb7t4">See more</a></div></div><div class="css-gyrv08"></div></div></div><div class="css-yzfa9h"><div class="css-uw1ldh"><div class="css-4gnhqq"><div class="css-xkasvz"><div class="css-atv6j6"><div class="css-1m8tyev"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div></div></div><div class="css-1vf0ygt"><div class="css-utnqcw">Alikhan Oitan</div><div class="css-ds0hbm"><a href="/oitan/decisions/103480172803629203" class="css-nil"><time>Jan 14, 2020</time> | 3 upvotes · 479.5K views </a></div></div></div></div><div class="css-nil"><div class="css-dg4ww9"><svg xmlns="http://www.w3.org/2000/svg" width="21" height="21" viewBox="0 0 21 21"><g fill="none"><path fill="#FF7E3F" d="M20.918 19.017l-1.442-4.195a10.3 10.3 0 0 0 1.062-4.537 10.208 10.208 0 0 0-2.949-7.207A10.199 10.199 0 0 0 10.436 0a10.23 10.23 0 0 0-7.428 3.006A10.228 10.228 0 0 0 0 10.437a10.199 10.199 0 0 0 3.077 7.153 10.207 10.207 0 0 0 7.191 2.95h.016a10.3 10.3 0 0 0 4.537-1.063l4.195 1.442a1.485 1.485 0 0 0 1.543-.357c.408-.408.545-.999.358-1.544z"></path><path fill="#FFF" stroke="#FFF" stroke-width=".55" d="M10.168 14.702c.35 0 .595 0 .623.622.028.623-.297.623-.623.623-.349 0-.607-.285-.622-.623-.015-.336.297-.622.622-.622zm0-9.465a3.1 3.1 0 0 1 3.097 3.097 3.103 3.103 0 0 1-2.474 3.034v1.543a.623.623 0 1 1-1.245 0V10.81c0-.344.278-.623.622-.623 1.021 0 1.852-.83 1.852-1.852 0-1.021-.83-1.852-1.852-1.852-1.021 0-1.852.83-1.852 1.852a.623.623 0 0 1-1.245 0 3.1 3.1 0 0 1 3.097-3.097z"></path></g></svg><div class="css-z9ms26">Needs advice</div><div class="css-6uh2e7">on</div><a href="/kafka" class="css-1pwtf47"><span title="Kafka" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/1063/kazUJooF_400x400.jpg" alt="Kafka" class="css-1rz3855"/></span><span class="css-i6njnm">Kafka</span></a><a href="/rabbitmq" class="css-1pwtf47"><span title="RabbitMQ" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg" alt="RabbitMQ" class="css-1rz3855"/></span><span class="css-i6njnm">RabbitMQ</span></a><div class="css-6uh2e7"> and </div><a href="/redis" class="css-1pwtf47"><span title="Redis" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/1031/default_cbce472cd134adc6688572f999e9122b9657d4ba.png" alt="Redis" class="css-1rz3855"/></span><span class="css-i6njnm">Redis</span></a></div><div class="css-1dp4k20"><div class="css-ztg526"><p>Hello! [Client sends live video frames -&gt; Server computes and responds the result] Web clients send video frames from their webcam then on the back we need to run them through some algorithm and send the result back as a response. Since everything will need to work in a live mode, we want something fast and also suitable for our case (as everyone needs). Currently, we are considering RabbitMQ for the purpose, but recently I have noticed that there is Redis and Kafka too. Could you please help us choose among them or anything more suitable beyond these guys. I think something similar to our product would be people using their webcam to get Snapchat masks on their faces, and the calculated face points are responded on from the server, then the client-side draw the mask on the user's face. I hope this helps. Thank you!</p></div></div></div><a class="css-1srb7t4">See more</a></div><div class="css-1pz1q9u"><div class="css-1rla8dl">Replies <span>(3)</span></div><div class="css-1cqgl9p"><div class="css-1cm2u5n"><div class="css-lhxxg6"></div><div class="css-jyena0"></div><div class="css-s6ccv3"></div></div><div class="css-uw1ldh"><div class="css-4gnhqq"><div class="css-xkasvz"><div class="css-atv6j6"><div class="css-1m8tyev"><a href="/jmquarck" title="Visit Profile" class="css-pvufaf"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div></a></div></div><div class="css-1vf0ygt"><div class="css-utnqcw">Jordi Martínez</div><div class="css-ds0hbm">Senior software architect<!-- --> at Bootloader<!-- --> · <a href="/jmquarck/decisions/103523246939307013" class="css-nil"><time>Jan 21, 2020</time> | 3 upvotes · 479.2K views </a></div></div></div></div><div class="css-nil"><div class="css-dg4ww9"><svg xmlns="http://www.w3.org/2000/svg" width="21" height="21" viewBox="0 0 21 21"><g fill="none" fill-rule="evenodd"><path fill="#068DFE" fill-rule="nonzero" d="M20.917 19.017c.188.545.05 1.136-.356 1.544a1.485 1.485 0 0 1-1.544.357l-4.196-1.442a10.3 10.3 0 0 1-4.536 1.062h-.016a10.207 10.207 0 0 1-7.191-2.949A10.199 10.199 0 0 1 0 10.436a10.228 10.228 0 0 1 3.006-7.428A10.23 10.23 0 0 1 10.437 0a10.199 10.199 0 0 1 7.153 3.077 10.208 10.208 0 0 1 2.95 7.208 10.3 10.3 0 0 1-1.063 4.536l1.441 4.195z"></path><path fill="#FFF" d="M10.221 15.937c-1.024 0-1.854-.905-1.854-2.021h3.709c0 1.116-.83 2.021-1.855 2.021zm1.721-3.083H8.5C8.408 11.813 6 10.904 6 8.303 6 5.527 8.02 4.056 10.22 4h.001c2.202.056 4.221 1.527 4.221 4.303 0 2.602-2.407 3.51-2.5 4.55z"></path></g></svg><div class="css-z9ms26">Recommends</div><a href="/kafka" class="css-1pwtf47"><span title="Kafka" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/1063/kazUJooF_400x400.jpg" alt="Kafka" class="css-1rz3855"/></span><span class="css-i6njnm">Kafka</span></a></div><div class="css-1dp4k20"><div class="css-ztg526"><p>For your use case, the tool that fits more is definitely Kafka. RabbitMQ was not invented to handle data streams, but messages. Plenty of them, of course, but individual messages. Redis is an in-memory database, which is what makes it so fast. Redis recently included features to handle data stream, but it cannot best Kafka on this, or at least not yet. Kafka is not also super fast, it also provides lots of features to help create software to handle those streams. </p></div></div></div><a class="css-1srb7t4">See more</a></div></div><div class="css-1cqgl9p"><div class="css-1cm2u5n"><div class="css-lhxxg6"></div><div class="css-jyena0"></div><div class="css-s6ccv3"></div></div><div class="css-uw1ldh"><div class="css-4gnhqq"><div class="css-xkasvz"><div class="css-atv6j6"><div class="css-1m8tyev"><a href="/snopoke" title="Visit Profile" class="css-pvufaf"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div></a></div></div><div class="css-1vf0ygt"><div class="css-utnqcw">Simon Kelly</div><div class="css-ds0hbm"><a href="/snopoke/decisions/103520150547916678" class="css-nil"><time>Jan 21, 2020</time> | 2 upvotes · 478.8K views </a></div></div></div></div><div class="css-nil"><div class="css-dg4ww9"><svg xmlns="http://www.w3.org/2000/svg" width="21" height="21" viewBox="0 0 21 21"><g fill="none" fill-rule="evenodd"><path fill="#068DFE" fill-rule="nonzero" d="M20.917 19.017c.188.545.05 1.136-.356 1.544a1.485 1.485 0 0 1-1.544.357l-4.196-1.442a10.3 10.3 0 0 1-4.536 1.062h-.016a10.207 10.207 0 0 1-7.191-2.949A10.199 10.199 0 0 1 0 10.436a10.228 10.228 0 0 1 3.006-7.428A10.23 10.23 0 0 1 10.437 0a10.199 10.199 0 0 1 7.153 3.077 10.208 10.208 0 0 1 2.95 7.208 10.3 10.3 0 0 1-1.063 4.536l1.441 4.195z"></path><path fill="#FFF" d="M10.221 15.937c-1.024 0-1.854-.905-1.854-2.021h3.709c0 1.116-.83 2.021-1.855 2.021zm1.721-3.083H8.5C8.408 11.813 6 10.904 6 8.303 6 5.527 8.02 4.056 10.22 4h.001c2.202.056 4.221 1.527 4.221 4.303 0 2.602-2.407 3.51-2.5 4.55z"></path></g></svg><div class="css-z9ms26">Recommends</div><a href="/rabbitmq" class="css-1pwtf47"><span title="RabbitMQ" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg" alt="RabbitMQ" class="css-1rz3855"/></span><span class="css-i6njnm">RabbitMQ</span></a></div><div class="css-1dp4k20"><div class="css-ztg526"><p>For this kind of use case I would recommend either RabbitMQ or Kafka depending on the needs for scaling, redundancy and how you want to design it.</p> <p>Kafka's true value comes into play when you need to distribute the streaming load over lot's of resources. If you were passing the video frames directly into the queue then you'd probably want to go with Kafka however if you can just pass a pointer to the frames then RabbitMQ should be fine and will be much simpler to run.</p> <p>Bear in mind too that Kafka is a persistent log, not just a message bus so any data you feed into it is kept available until it expires (which is configurable). This can be useful if you have multiple clients reading from the queue with their own lifecycle but in your case it doesn't sound like that would be necessary. You could also use a RabbitMQ fanout exchange if you need that in the future.</p></div></div></div><a class="css-1srb7t4">See more</a></div></div><div class="css-1cqgl9p"><div class="css-1cm2u5n"><div class="css-lhxxg6"></div><div class="css-jyena0"></div></div><div class="css-uw1ldh"><div class="css-4gnhqq"><div class="css-xkasvz"><div class="css-atv6j6"><div class="css-1m8tyev"><a href="/teodeleanu" title="Visit Profile" class="css-pvufaf"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div></a></div></div><div class="css-1vf0ygt"><div class="css-utnqcw">Teo Deleanu</div><div class="css-ds0hbm">Developer<!-- --> · <a href="/teodeleanu/decisions/103517903319420323" class="css-nil"><time>Jan 20, 2020</time> | 2 upvotes · 478.9K views </a></div></div></div></div><div class="css-nil"><div class="css-dg4ww9"><svg xmlns="http://www.w3.org/2000/svg" width="21" height="21" viewBox="0 0 21 21"><g fill="none" fill-rule="evenodd"><path fill="#068DFE" fill-rule="nonzero" d="M20.917 19.017c.188.545.05 1.136-.356 1.544a1.485 1.485 0 0 1-1.544.357l-4.196-1.442a10.3 10.3 0 0 1-4.536 1.062h-.016a10.207 10.207 0 0 1-7.191-2.949A10.199 10.199 0 0 1 0 10.436a10.228 10.228 0 0 1 3.006-7.428A10.23 10.23 0 0 1 10.437 0a10.199 10.199 0 0 1 7.153 3.077 10.208 10.208 0 0 1 2.95 7.208 10.3 10.3 0 0 1-1.063 4.536l1.441 4.195z"></path><path fill="#FFF" d="M10.221 15.937c-1.024 0-1.854-.905-1.854-2.021h3.709c0 1.116-.83 2.021-1.855 2.021zm1.721-3.083H8.5C8.408 11.813 6 10.904 6 8.303 6 5.527 8.02 4.056 10.22 4h.001c2.202.056 4.221 1.527 4.221 4.303 0 2.602-2.407 3.51-2.5 4.55z"></path></g></svg><div class="css-z9ms26">Recommends</div><a href="/rabbitmq" class="css-1pwtf47"><span title="RabbitMQ" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg" alt="RabbitMQ" class="css-1rz3855"/></span><span class="css-i6njnm">RabbitMQ</span></a></div><div class="css-1dp4k20"><div class="css-ztg526"><p>I've used all of them and Kafka is hard to set up and maintain. Mostly is a Java dinosaur that you can set up and. I've used it with Storm but that is another big dinosaur. Redis is mostly for caching. The queue mechanism is not very scalable for multiple processors. Depending on the speed you need to implement on the reliability I would use RabbitMQ. You can store the frames(if they are too big) somewhere else and just have a link to them. Moving data through any of these will increase cost of transportation. With Rabbit, you can always have multiple consumers and check for redundancy. Hope it clears out your thoughts!</p></div></div></div><a class="css-1srb7t4">See more</a></div></div><div class="css-gyrv08"></div></div></div><div class="css-gyrv08"></div><div class="css-n746ki"></div></div></div><div style="border-bottom:none;padding-bottom:0" class="css-5k0ecd"><div class="css-oa3yz4"><div class="css-1g9kten">Decisions about Amazon SQS, Celery, and RabbitMQ</div><div class="css-uw1ldh"><div class="css-4gnhqq"><div class="css-xkasvz"><div class="css-atv6j6"><div class="css-1m8tyev"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div></div></div><div class="css-1vf0ygt"><div class="css-utnqcw"><div>Kirill Mikhailov</div></div><div class="css-ds0hbm">GO/C developer<!-- --> · <a href="/ducklingsoftware/decisions/105740869647880096" class="css-nil"><time>Feb 16, 2021</time> <!-- -->| 7 upvotes · 186K views</a></div></div></div></div><div class="css-nil"><div class="css-dg4ww9"><svg xmlns="http://www.w3.org/2000/svg" width="21" height="21" viewBox="0 0 21 21"><g fill="none"><path fill="#068DFE" d="M20.918 19.017l-1.442-4.195a10.3 10.3 0 0 0 1.062-4.537 10.208 10.208 0 0 0-2.949-7.207A10.199 10.199 0 0 0 10.436 0a10.23 10.23 0 0 0-7.428 3.006A10.228 10.228 0 0 0 0 10.437a10.199 10.199 0 0 0 3.077 7.153 10.207 10.207 0 0 0 7.191 2.95h.016a10.3 10.3 0 0 0 4.537-1.063l4.195 1.442a1.485 1.485 0 0 0 1.543-.357c.408-.408.545-1 .358-1.544z"></path><path fill="#FFF" d="M9.644 14.658a.923.923 0 0 1-.715.342.93.93 0 0 1-.71-.338l-1.98-2.36a1.044 1.044 0 0 1 .08-1.418.914.914 0 0 1 1.342.086l1.24 1.478 4.444-5.117a.914.914 0 0 1 1.342-.072c.39.372.42 1.006.068 1.418l-5.111 5.981z"></path></g></svg><div class="css-z9ms26">Chose</div><a href="/rabbitmq" class="css-1pwtf47"><span title="RabbitMQ" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg" alt="RabbitMQ" class="css-1rz3855"/></span><span class="css-i6njnm">RabbitMQ</span></a><div class="css-6uh2e7">over</div><a href="/google-cloud-pubsub" class="css-1pwtf47"><span title="Google Cloud Pub/Sub" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/6253/pubsub.png" alt="Google Cloud Pub/Sub" class="css-1rz3855"/></span><span class="css-i6njnm">Google Cloud Pub/Sub</span></a><a href="/kafka" class="css-1pwtf47"><span title="Kafka" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/1063/kazUJooF_400x400.jpg" alt="Kafka" class="css-1rz3855"/></span><span class="css-i6njnm">Kafka</span></a><div class="css-6uh2e7">at</div><a itemscope="" itemType="http://schema.org/Organization" itemProp="url" href="/companies/duckling-sales" target="_blank" class="css-1j2w1cg"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div><div itemProp="name" class="css-1b2ktnx">Duckling Sales</div></a><span class="css-103289b">(</span><a itemscope="" itemType="http://schema.org/Organization" itemProp="url" href="/duckling-sales/duckling-sales" target="_blank" class="css-1j2w1cg"><svg class="css-lnzci0" width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><path d="M2.4 0h19.2A2.4 2.4 0 0 1 24 2.4V17H0V2.4A2.4 2.4 0 0 1 2.4 0z" id="path-1"></path><path d="M0 0h24v4.6A2.4 2.4 0 0 1 21.6 7H2.4A2.4 2.4 0 0 1 0 4.6V0z" id="path-3"></path></defs><g id="Page-1" fill="none" fill-rule="evenodd"><g id="default-stack-icon"><g id="Group"><g id="b-link" fill="#333" fill-rule="nonzero"><path d="M2.4 0h19.2A2.4 2.4 0 0 1 24 2.4V17H0V2.4A2.4 2.4 0 0 1 2.4 0z" id="b"></path></g><g id="Clipped"><mask id="mask-2" fill="#fff"><use xlink:href="#path-1"></use></mask><path d="M2.704 1.967c0-.14.11-.253.249-.253h1.53c.138 0 .25.11.25.253v1.552a.25.25 0 0 1-.25.252h-1.53a.249.249 0 0 1-.249-.252V1.967zm0 3.428c0-.14.11-.252.249-.252h1.53c.138 0 .25.11.25.252v1.553a.25.25 0 0 1-.25.252h-1.53a.249.249 0 0 1-.249-.252V5.395zm0 3.429c0-.14.11-.253.249-.253h1.53a.25.25 0 0 1 .25.253v1.552a.25.25 0 0 1-.25.253h-1.53a.249.249 0 0 1-.249-.253V8.824zm0 3.428c0-.14.11-.252.249-.252h1.53c.138 0 .25.11.25.252v1.553a.25.25 0 0 1-.25.252h-1.53a.249.249 0 0 1-.249-.252v-1.553zM10.14 1.967c0-.14.11-.253.25-.253h1.53c.138 0 .249.11.249.253v1.552c0 .14-.109.252-.249.252h-1.53a.249.249 0 0 1-.25-.252V1.967zm0 3.428c0-.14.11-.252.25-.252h1.53c.138 0 .249.11.249.252v1.553c0 .14-.109.252-.249.252h-1.53a.249.249 0 0 1-.25-.252V5.395zm0 3.429c0-.14.11-.253.25-.253h1.53a.25.25 0 0 1 .249.253v1.552a.25.25 0 0 1-.249.253h-1.53a.249.249 0 0 1-.25-.253V8.824zm0 3.428c0-.14.11-.252.25-.252h1.53c.138 0 .249.11.249.252v1.553c0 .14-.109.252-.249.252h-1.53a.249.249 0 0 1-.25-.252v-1.553zM6.423 1.967a.25.25 0 0 1 .248-.253h1.531a.25.25 0 0 1 .249.253v1.552a.25.25 0 0 1-.249.252h-1.53a.249.249 0 0 1-.25-.252V1.967h.001zm0 3.428c0-.14.109-.252.248-.252h1.531a.25.25 0 0 1 .249.252v1.553a.25.25 0 0 1-.249.252h-1.53a.249.249 0 0 1-.25-.252V5.395h.001zm0 3.429a.25.25 0 0 1 .248-.253h1.531a.25.25 0 0 1 .249.253v1.552a.25.25 0 0 1-.249.253h-1.53a.249.249 0 0 1-.25-.253V8.824h.001zm0 3.428c0-.14.109-.252.248-.252h1.531a.25.25 0 0 1 .249.252v1.553a.25.25 0 0 1-.249.252h-1.53a.249.249 0 0 1-.25-.252v-1.553h.001zM13.86 1.967c0-.14.108-.253.248-.253h1.53c.138 0 .25.11.25.253v1.552a.25.25 0 0 1-.25.252h-1.53a.249.249 0 0 1-.249-.252V1.967h.001zm0 3.428c0-.14.108-.252.248-.252h1.53c.138 0 .25.11.25.252v1.553a.25.25 0 0 1-.25.252h-1.53a.249.249 0 0 1-.249-.252V5.395h.001zm0 3.429c0-.14.108-.253.248-.253h1.53a.25.25 0 0 1 .25.253v1.552a.25.25 0 0 1-.25.253h-1.53a.249.249 0 0 1-.249-.253V8.824h.001zm3.717-6.857c0-.14.11-.253.25-.253h1.53a.25.25 0 0 1 .249.253v1.552a.25.25 0 0 1-.25.252h-1.53a.249.249 0 0 1-.249-.252V1.967zm0 3.428c0-.14.11-.252.25-.252h1.53a.25.25 0 0 1 .249.252v1.553a.25.25 0 0 1-.25.252h-1.53a.249.249 0 0 1-.249-.252V5.395zm0 3.429c0-.14.11-.253.25-.253h1.53a.25.25 0 0 1 .249.253v1.552a.25.25 0 0 1-.25.253h-1.53a.249.249 0 0 1-.249-.253V8.824z" id="Shape" fill="#919191" fill-rule="nonzero" opacity=".404" mask="url(#mask-2)"></path></g></g><g id="d-link" transform="translate(0 17)" fill="#FFF" fill-rule="nonzero"><path d="M0 0h24v4.6A2.4 2.4 0 0 1 21.6 7H2.4A2.4 2.4 0 0 1 0 4.6V0z" id="d"></path></g><g id="Clipped" transform="translate(0 17)"><mask id="mask-4" fill="#fff"><use xlink:href="#path-3"></use></mask><rect id="Rectangle-path" fill="#E5E5E5" fill-rule="nonzero" mask="url(#mask-4)" x="5.408" y="2" width="13.521" height="1.717" rx=".859"></rect></g></g></g></svg><div itemProp="name" class="css-1b2ktnx">Duckling Sales</div></a><span class="css-odgfgk">)</span></div><div class="css-1dp4k20"><div class="css-ztg526"><p>Maybe not an obvious comparison with Kafka, since Kafka is pretty different from rabbitmq. But for small service, Rabbit as a pubsub platform is super easy to use and pretty powerful. Kafka as an alternative was the original choice, but its really a kind of overkill for a small-medium service. Especially if you are not planning to use k8s, since pure docker deployment can be a pain because of networking setup. Google PubSub was another alternative, its actually pretty cheap, but I never tested it since Rabbit was matching really good for mailing/notification services.</p></div></div></div><a class="css-1srb7t4">See more</a></div><div class="css-uw1ldh"><div class="css-4gnhqq"><div class="css-xkasvz"><div class="css-atv6j6"><div class="css-1m8tyev"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div></div></div><div class="css-1vf0ygt"><div class="css-utnqcw"><div>Mickael Alliel</div></div><div class="css-ds0hbm">DevOps Engineer<!-- --> at Rookout<!-- --> · <a href="/mickaelallielrookout/decisions/103749461332940873" class="css-nil"><time>Mar 1, 2020</time> <!-- -->| 4 upvotes · 342.5K views</a></div></div></div></div><div class="css-nil"><div class="css-dg4ww9"><svg xmlns="http://www.w3.org/2000/svg" width="21" height="21" viewBox="0 0 21 21"><g fill="none" fill-rule="evenodd"><path fill="#068DFE" fill-rule="nonzero" d="M20.918 19.017l-1.442-4.195a10.3 10.3 0 0 0 1.062-4.537 10.208 10.208 0 0 0-2.949-7.207A10.199 10.199 0 0 0 10.436 0a10.23 10.23 0 0 0-7.428 3.006A10.228 10.228 0 0 0 0 10.437a10.199 10.199 0 0 0 3.077 7.153 10.207 10.207 0 0 0 7.191 2.95h.016a10.3 10.3 0 0 0 4.537-1.063l4.195 1.442a1.485 1.485 0 0 0 1.543-.357c.408-.408.545-.999.358-1.544z"></path><path fill="#FFF" stroke="#FFF" stroke-width=".5" d="M14.851 10.133l-3.885-3.981a.492.492 0 0 0-.711 0 .524.524 0 0 0 0 .73l3.026 3.103H5.506a.512.512 0 0 0-.506.52c0 .286.226.518.506.518h7.775l-3.026 3.096a.524.524 0 0 0 0 .73.494.494 0 0 0 .715 0l3.886-3.986a.528.528 0 0 0-.005-.73z"></path></g></svg><div class="css-z9ms26">Migrated</div><div class="css-6uh2e7">from</div><a href="/cloudamqp" class="css-1pwtf47"><span title="CloudAMQP" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/312/default_a6b90f9ad5d401bc501ce1197fc5c052fbc28605.jpg" alt="CloudAMQP" class="css-1rz3855"/></span><span class="css-i6njnm">CloudAMQP</span></a><a href="/rabbitmq" class="css-1pwtf47"><span title="RabbitMQ" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/1061/default_df93e9a30d27519161b39d8c1d5c223c1642d187.jpg" alt="RabbitMQ" class="css-1rz3855"/></span><span class="css-i6njnm">RabbitMQ</span></a><div class="css-6uh2e7">to</div><a href="/google-cloud-pubsub" class="css-1pwtf47"><span title="Google Cloud Pub/Sub" class="css-t68yd0 service"><img src="https://img.stackshare.io/service/6253/pubsub.png" alt="Google Cloud Pub/Sub" class="css-1rz3855"/></span><span class="css-i6njnm">Google Cloud Pub/Sub</span></a><div class="css-6uh2e7">at</div><a itemscope="" itemType="http://schema.org/Organization" itemProp="url" href="/companies/rookout" target="_blank" class="css-1j2w1cg"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div><div itemProp="name" class="css-1b2ktnx">Rookout</div></a></div><div class="css-1dp4k20"><div class="css-ztg526"><p>In addition to being a lot cheaper, Google Cloud Pub/Sub allowed us to not worry about maintaining any more infrastructure that needed.</p> <p>We moved from a self-hosted RabbitMQ over to CloudAMQP and decided that since we use GCP anyway, why not try their managed PubSub?</p> <p>It is one of the better decisions that we made, and we can just focus about building more important stuff!</p></div></div></div><a class="css-1srb7t4">See more</a></div><div class="css-gyrv08"></div><div class="css-n746ki"></div></div></div><div class="css-5k0ecd"><div style="padding-top:0;padding-bottom:0" class="css-1cuq2n9"><svg class="css-1cl6o07" xmlns="http://www.w3.org/2000/svg" width="123" height="70" viewBox="0 0 123 70"><g fill="none" fill-rule="evenodd"><g fill="#008FF9" stroke="#008FF9" opacity=".74"><g stroke-width="2.207" opacity=".413"><path d="M62.27 24.009c6.068 0 11.004-4.937 11.004-11.005C73.274 6.937 68.338 2 62.27 2S51.266 6.937 51.266 13.004c0 6.068 4.936 11.005 11.004 11.005zm0-19.368c4.612 0 8.363 3.752 8.363 8.363 0 4.612-3.751 8.364-8.363 8.364-4.611 0-8.363-3.752-8.363-8.364 0-4.611 3.752-8.363 8.363-8.363zm-.579 24.58c-11.177 0-20.271 9.28-20.271 20.689 0 .73.58 1.32 1.294 1.32.714 0 1.294-.59 1.294-1.32 0-9.951 7.932-18.047 17.683-18.047 9.75 0 17.683 8.096 17.683 18.047 0 .73.58 1.32 1.294 1.32.714 0 1.294-.59 1.294-1.32 0-11.407-9.093-20.688-20.271-20.688z" opacity=".502"></path></g><g opacity=".266"><path stroke-width="1.927" d="M33.506 27.484c-5.323 0-9.653-4.33-9.653-9.653s4.33-9.653 9.653-9.653c5.322 0 9.653 4.33 9.653 9.653 0 5.322-4.33 9.653-9.653 9.653zm0-16.99c-4.045 0-7.336 3.292-7.336 7.337s3.29 7.336 7.336 7.336c4.045 0 7.336-3.291 7.336-7.336s-3.291-7.336-7.336-7.336z" opacity=".502"></path><path stroke-width="1.986" d="M42.973 33.722c9.802 2.263 15.898 12.243 13.588 22.246a1.176 1.176 0 0 1-1.402.896 1.176 1.176 0 0 1-.867-1.42c2.015-8.726-3.303-17.432-11.853-19.406-8.55-1.974-17.146 3.52-19.161 12.246a1.177 1.177 0 0 1-1.402.896 1.176 1.176 0 0 1-.867-1.42c2.31-10.003 12.162-16.3 21.964-14.038z" opacity=".502"></path></g><g opacity=".266"><path stroke-width="1.927" d="M90.263 27.484c5.323 0 9.653-4.33 9.653-9.653s-4.33-9.653-9.653-9.653c-5.322 0-9.653 4.33-9.653 9.653 0 5.322 4.33 9.653 9.653 9.653zm0-16.99c4.045 0 7.337 3.292 7.337 7.337s-3.292 7.336-7.337 7.336-7.336-3.291-7.336-7.336 3.291-7.336 7.336-7.336z" opacity=".502"></path><path stroke-width="1.986" d="M80.217 33.722c-9.802 2.263-15.898 12.243-13.588 22.246.147.64.775 1.041 1.402.896a1.176 1.176 0 0 0 .867-1.42c-2.015-8.726 3.303-17.432 11.853-19.406 8.55-1.974 17.146 3.52 19.161 12.246.148.64.776 1.041 1.402.896a1.176 1.176 0 0 0 .867-1.42c-2.31-10.003-12.162-16.3-21.964-14.038z" opacity=".502"></path></g><g stroke-width="1.413" opacity=".184"><path d="M111.547 31.915a7.05 7.05 0 0 0 7.042-7.042c0-3.884-3.159-7.043-7.042-7.043-3.885 0-7.043 3.16-7.043 7.043s3.16 7.042 7.043 7.042zm0-12.395a5.358 5.358 0 0 1 5.352 5.353c0 2.951-2.4 5.352-5.352 5.352a5.358 5.358 0 0 1-5.353-5.352 5.359 5.359 0 0 1 5.353-5.353zm-6.725 21.023a.815.815 0 0 1-1.119.139.75.75 0 0 1-.144-1.08c2.39-2.98 6.001-4.69 9.906-4.69 2.508 0 4.927.712 6.997 2.06a.753.753 0 0 1 .215 1.068.818.818 0 0 1-1.109.207 11.152 11.152 0 0 0-6.103-1.796c-3.406 0-6.557 1.492-8.642 4.092z" opacity=".502"></path></g><g stroke-width="1.413" opacity=".177"><path d="M10.871 31.915a7.05 7.05 0 0 1-7.042-7.042c0-3.884 3.159-7.043 7.042-7.043 3.885 0 7.043 3.16 7.043 7.043s-3.16 7.042-7.043 7.042zm0-12.395a5.358 5.358 0 0 0-5.352 5.353c0 2.951 2.4 5.352 5.352 5.352 2.952 0 5.353-2.4 5.353-5.352a5.359 5.359 0 0 0-5.353-5.353zM3.036 40.543a.818.818 0 0 1-1.121.139.751.751 0 0 1-.144-1.08c2.39-2.98 6.002-4.69 9.907-4.69 2.507 0 4.927.712 6.996 2.06a.751.751 0 0 1 .215 1.068.818.818 0 0 1-1.109.207 11.147 11.147 0 0 0-6.102-1.797c-3.407 0-6.557 1.492-8.643 4.092z" opacity=".502"></path></g></g><g><path fill="#008FF9" stroke="#008FF9" stroke-width=".842" d="M61.047 16.51c-6.44 3.802-13.035 6.6-20.164 8.553a2.453 2.453 0 0 0-1.302.88 2.452 2.452 0 0 0-.504 1.487v9.447c0 11.603 5.26 19.355 10.029 24.121.827.81 1.69 1.57 2.569 2.274 2.796 2.241 5.735 3.912 7.985 4.731 1.047.382 1.953.58 2.636.58.684 0 1.59-.198 2.637-.58 2.19-.797 5.033-2.401 7.762-4.554a34.855 34.855 0 0 0 2.813-2.472c4.57-4.487 10.007-12.303 10.007-24.1V27.43c0-.603-.16-1.098-.46-1.493-.297-.388-.736-.684-1.346-.874-6.932-1.899-13.906-4.857-20.166-8.553a2.454 2.454 0 0 0-2.495 0z"></path><path fill="#FFF" stroke="#008FF9" stroke-width=".605" d="M62.079 18.257c-6.664 3.935-13.492 6.82-20.974 8.945v9.675c0 10.19 4.31 17.217 8.465 21.7V43.259c0-.483.197-.922.515-1.24a1.75 1.75 0 0 1 1.24-.514h2.21v-1.447c0-2.426.97-4.627 2.538-6.222 1.566-1.591 3.727-2.579 6.111-2.579a8.55 8.55 0 0 1 6.112 2.58 8.863 8.863 0 0 1 2.539 6.227v1.441h2.43c.484 0 .923.197 1.24.515.318.317.515.756.515 1.24v15.31c4.065-4.333 8.465-11.397 8.465-21.694l-.092-9.795-1.11-.31c-6.809-1.951-13.627-4.887-20.204-8.515zm.105 15.133c-1.81 0-3.451.748-4.64 1.956a6.7 6.7 0 0 0-1.921 4.71v1.448h13.123v-1.447a6.697 6.697 0 0 0-1.922-4.711 6.491 6.491 0 0 0-4.64-1.956z"></path><path fill="#FFF" d="M83.182 36.877c0 9.758-3.988 16.585-7.86 20.916V43.258a2.059 2.059 0 0 0-2.056-2.056h-2.129v-1.139c0-5.021-4.014-9.11-8.953-9.11-4.938 0-8.952 4.089-8.952 9.104v1.145h-1.908a2.059 2.059 0 0 0-2.056 2.056v14.535a4.32 4.32 0 0 1-.11-.122c-3.837-4.336-7.75-11.129-7.75-20.794V27.43c0-.055.037-.103.09-.118 7.331-2.009 14.114-4.885 20.735-8.794.02-.012.04-.017.062-.017s.043.005.062.017c6.437 3.8 13.607 6.84 20.735 8.794.053.015.09.063.09.118v9.447z"></path><path fill="#FFF" d="M67.197 57.374c-.6 0-1.1-.413-1.212-.96 0 0-.032-.23 0-.463.112-.546.613-.96 1.211-.96.681 0 1.235.535 1.235 1.192 0 .657-.554 1.191-1.235 1.191m-10.759-4.22c-.68 0-1.234-.534-1.234-1.19 0-.658.553-1.192 1.234-1.192.681 0 1.235.534 1.235 1.191s-.554 1.192-1.235 1.192m9.539-5.687v-.008c.112-.546.612-.96 1.21-.96.681 0 1.235.534 1.235 1.192 0 .657-.554 1.191-1.234 1.191-.6 0-1.1-.413-1.211-.96-.028-.21 0-.455 0-.455m1.22 6.446c-1.07 0-1.972.69-2.256 1.635h-1.393l-2.175-3.612v-.006l2.172-3.605h1.386c.285.944 1.187 1.634 2.257 1.634 1.297 0 2.35-1.016 2.35-2.268 0-1.253-1.053-2.269-2.35-2.269-1.07 0-1.972.69-2.257 1.634h-2.113l-.021-.012-2.56 4.252-.02.032h-1.521c-.285-.944-1.187-1.634-2.257-1.634-1.297 0-2.35 1.016-2.35 2.268 0 1.253 1.053 2.268 2.35 2.268 1.07 0 1.972-.69 2.257-1.634h1.555l2.546 4.227.011-.007h2.134c.284.944 1.187 1.634 2.256 1.634 1.298 0 2.35-1.016 2.35-2.268 0-1.253-1.052-2.269-2.35-2.269m1.246-12.712H55.925v-1.145c0-3.511 2.806-6.364 6.26-6.364 3.452 0 6.258 2.853 6.258 6.364v1.145z"></path></g></g></svg><div class="css-172fe00">Get Advice from developers at your company using StackShare Enterprise.<!-- --> <a href="/manage-companies/enterprise" class="css-1i2jin4">Sign up for StackShare Enterprise.</a></div><a href="/enterprise" class="css-1f94cd7">Learn More</a></div></div><div id="pros" style="pointer-events:none;grid-column:span 3;display:block;height:182px;margin-top:-182px"></div><div style="border-bottom:0;padding-bottom:0" data-notes="index 0 num 3 offset 0" class="css-3vlw85"><div class="css-f8hv9w"><span>Pros of Amazon SQS</span></div></div><div style="border-bottom:0;padding-bottom:0" data-notes="index 1 num 3 offset 0" class="css-3vlw85"><div class="css-f8hv9w"><span>Pros of Celery</span></div></div><div style="border-right:0;border-bottom:0;padding-bottom:0" data-notes="index 2 num 3 offset 0" class="css-3vlw85"><div class="css-f8hv9w"><span>Pros of RabbitMQ</span></div></div><div style="border-bottom:0;padding-bottom:0" data-notes="index 0 num 3 offset 0" class="css-3vlw85"><div class="css-nil"><div class="css-1v4wqws"><div class="css-nil"><div class="css-uxqild"><h2 hidden="" class="css-nil">Pros of Amazon SQS</h2><ul class="css-7c9av6"><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">61</span></div></div><span class="css-rsz8c">Easy to use, reliable</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">39</span></div></div><span class="css-rsz8c">Low cost</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">27</span></div></div><span class="css-rsz8c">Simple</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">13</span></div></div><span class="css-rsz8c">Doesn&#x27;t need to maintain it</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">8</span></div></div><span class="css-rsz8c">It is Serverless</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">4</span></div></div><span class="css-rsz8c">Has a max message size (currently 256K)</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">3</span></div></div><span class="css-rsz8c">Easy to configure with Terraform</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">3</span></div></div><span class="css-rsz8c">Triggers Lambda</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">3</span></div></div><span class="css-rsz8c">Delayed delivery upto 15 mins only</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">3</span></div></div><span class="css-rsz8c">Delayed delivery upto 12 hours</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">1</span></div></div><span class="css-rsz8c">JMS compliant</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">1</span></div></div><span class="css-rsz8c">Support for retry and dead letter queue</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">1</span></div></div><span class="css-rsz8c">D</span></div></li></ul></div></div></div></div></div><div style="border-bottom:0;padding-bottom:0" data-notes="index 1 num 3 offset 0" class="css-3vlw85"><div class="css-nil"><div class="css-1v4wqws"><div class="css-nil"><div class="css-uxqild"><h2 hidden="" class="css-nil">Pros of Celery</h2><ul class="css-7c9av6"><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">98</span></div></div><span class="css-rsz8c">Task queue</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">63</span></div></div><span class="css-rsz8c">Python integration</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">40</span></div></div><span class="css-rsz8c">Django integration</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">30</span></div></div><span class="css-rsz8c">Scheduled Task</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">19</span></div></div><span class="css-rsz8c">Publish/subsribe</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">8</span></div></div><span class="css-rsz8c">Various backend broker</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">6</span></div></div><span class="css-rsz8c">Easy to use</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">5</span></div></div><span class="css-rsz8c">Great community</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">5</span></div></div><span class="css-rsz8c">Workflow</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">4</span></div></div><span class="css-rsz8c">Free</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">1</span></div></div><span class="css-rsz8c">Dynamic</span></div></li></ul></div></div></div></div></div><div style="border-right:0;border-bottom:0;padding-bottom:0" data-notes="index 2 num 3 offset 0" class="css-3vlw85"><div class="css-nil"><div class="css-1v4wqws"><div class="css-nil"><div class="css-uxqild"><h2 hidden="" class="css-nil">Pros of RabbitMQ</h2><ul class="css-7c9av6"><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">232</span></div></div><span class="css-rsz8c">It&#x27;s fast and it works with good metrics/monitoring</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">79</span></div></div><span class="css-rsz8c">Ease of configuration</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">58</span></div></div><span class="css-rsz8c">I like the admin interface</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">50</span></div></div><span class="css-rsz8c">Easy to set-up and start with</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">20</span></div></div><span class="css-rsz8c">Durable</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">18</span></div></div><span class="css-rsz8c">Standard protocols</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">18</span></div></div><span class="css-rsz8c">Intuitive work through python</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">10</span></div></div><span class="css-rsz8c">Written primarily in Erlang</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">8</span></div></div><span class="css-rsz8c">Simply superb</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">6</span></div></div><span class="css-rsz8c">Completeness of messaging patterns</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">3</span></div></div><span class="css-rsz8c">Reliable</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">3</span></div></div><span class="css-rsz8c">Scales to 1 million messages per second</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">2</span></div></div><span class="css-rsz8c">Better than most traditional queue based message broker</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">2</span></div></div><span class="css-rsz8c">Distributed</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">2</span></div></div><span class="css-rsz8c">Supports AMQP</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">1</span></div></div><span class="css-rsz8c">Inubit Integration</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">1</span></div></div><span class="css-rsz8c">Open-source</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">1</span></div></div><span class="css-rsz8c">Delayed messages</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">1</span></div></div><span class="css-rsz8c">Supports MQTT</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">1</span></div></div><span class="css-rsz8c">Runs on Open Telecom Platform</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">1</span></div></div><span class="css-rsz8c">High performance</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">1</span></div></div><span class="css-rsz8c">Reliability</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">1</span></div></div><span class="css-rsz8c">Clusterable</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">1</span></div></div><span class="css-rsz8c">Clear documentation with different scripting language</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">1</span></div></div><span class="css-rsz8c">Great ui</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">1</span></div></div><span class="css-rsz8c">Better routing system</span></div></li></ul></div></div></div></div></div><div class="css-5k0ecd"><div class="css-p8n7zj"><div class="css-1uq0dwx"><svg class="css-1p6gwer" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 76 76"><g fill="none"><path fill="#068DFE" d="M73.548 63.742V23.29a6.137 6.137 0 0 0-6.129-6.129h-3.677C63.742 7.698 56.044 0 46.58 0c-9.464 0-17.162 7.698-17.162 17.161H8.581a6.136 6.136 0 0 0-6.13 6.13v40.45H0v6.13C0 73.251 2.75 76 6.129 76h63.742C73.251 76 76 73.25 76 69.871v-6.13h-2.452zm-6.129-44.13a3.682 3.682 0 0 1 3.678 3.678v40.452h-2.452V24.516c0-1.352-1.1-2.451-2.451-2.451h-3.175a17.04 17.04 0 0 0 .527-2.452h3.873zm-34.836-6.955l13.01 5.421 4.456 13.363c-1.115.27-2.272.43-3.468.43-8.112 0-14.71-6.598-14.71-14.71 0-1.571.254-3.084.712-4.504zm19.794 18.019l-4.394-13.184 9.818-9.819a14.63 14.63 0 0 1 3.49 9.488c0 6.053-3.678 11.26-8.914 13.515zM46.581 2.452a14.64 14.64 0 0 1 9.489 3.487l-9.775 9.774-12.762-5.316c2.453-4.714 7.376-7.945 13.048-7.945zM4.903 23.29a3.682 3.682 0 0 1 3.678-3.677h21.035c.12.837.289 1.657.526 2.452H9.806a2.454 2.454 0 0 0-2.451 2.451v39.226H4.903V23.29zm68.645 46.581a3.682 3.682 0 0 1-3.677 3.677H6.129a3.682 3.682 0 0 1-3.677-3.677v-3.677h25.254a9.525 9.525 0 0 0 6.407 2.451h7.775c2.39 0 4.645-.867 6.407-2.451h15.447v-2.452H47.299l-.36.36a7.096 7.096 0 0 1-5.052 2.092h-7.775a7.098 7.098 0 0 1-5.053-2.093l-.358-.36H9.806V24.517H31.1c2.762 5.789 8.653 9.807 15.482 9.807 6.828 0 12.72-4.018 15.481-9.807h4.132v41.678h7.354v3.677z"></path><path fill="#068DFE" d="M60.286 51.286c-.76 0-1.468.227-2.057.613l-4.32-3.176c.11-.344.186-.702.186-1.08 0-2.008-1.666-3.643-3.714-3.643s-3.714 1.635-3.714 3.643c0 .418.086.813.219 1.187l-6.935 5.442A3.728 3.728 0 0 0 38 53.714a3.73 3.73 0 0 0-2.215.736l-5.339-3.491c.075-.285.125-.58.125-.888 0-2.008-1.666-3.642-3.714-3.642-2.047 0-3.714 1.634-3.714 3.642 0 .309.05.603.125.888l-5.339 3.491a3.722 3.722 0 0 0-2.215-.736c-2.047 0-3.714 1.635-3.714 3.643S13.667 61 15.714 61c2.048 0 3.715-1.635 3.715-3.643 0-.308-.051-.602-.126-.887l5.34-3.492c.62.457 1.381.736 2.214.736s1.595-.279 2.215-.736l5.339 3.492c-.075.285-.125.58-.125.887C34.286 59.365 35.952 61 38 61s3.714-1.635 3.714-3.643c0-.418-.086-.813-.219-1.187l6.935-5.442a3.728 3.728 0 0 0 4.008-.055l4.319 3.176c-.11.344-.186.702-.186 1.08 0 2.008 1.667 3.642 3.715 3.642 2.047 0 3.714-1.634 3.714-3.642 0-2.009-1.667-3.643-3.714-3.643zM15.714 58.57a1.229 1.229 0 0 1-1.238-1.214c0-.669.556-1.214 1.238-1.214.682 0 1.238.545 1.238 1.214 0 .669-.556 1.214-1.238 1.214zm11.143-7.285a1.229 1.229 0 0 1-1.238-1.215c0-.668.556-1.214 1.238-1.214.682 0 1.238.546 1.238 1.214 0 .67-.556 1.215-1.238 1.215zM38 58.57a1.229 1.229 0 0 1-1.238-1.214c0-.669.556-1.214 1.238-1.214.682 0 1.238.545 1.238 1.214 0 .669-.556 1.214-1.238 1.214zm12.381-9.714a1.229 1.229 0 0 1-1.238-1.214c0-.669.556-1.214 1.238-1.214.682 0 1.238.545 1.238 1.214 0 .669-.556 1.214-1.238 1.214zm9.905 7.286a1.229 1.229 0 0 1-1.238-1.214c0-.67.556-1.215 1.238-1.215a1.23 1.23 0 0 1 1.238 1.215c0 .668-.556 1.214-1.238 1.214z"></path><path fill="#E8F4FF" d="M32 27H12v17h20z"></path><path fill="#068DFE" d="M17 32h10v2H17zm0 5h10v2H17zm18 2h2v2h-2z"></path><path fill="#E8F4FF" d="M39 39h24v2H39z"></path></g></svg><h1 class="css-lr10t7">Sign up to add or upvote pros<span class="css-4yzqpf">Make informed product decisions</span></h1></div><button data-testid="signupFullAccessButton" class="css-st9eg3">Sign up now</button></div></div><div style="border-bottom:0;padding-bottom:0" data-notes="index 0 num 3 offset 0" class="css-3vlw85"><div class="css-f8hv9w"><span>Cons of Amazon SQS</span></div></div><div style="border-bottom:0;padding-bottom:0" data-notes="index 1 num 3 offset 0" class="css-3vlw85"><div class="css-f8hv9w"><span>Cons of Celery</span></div></div><div style="border-right:0;border-bottom:0;padding-bottom:0" data-notes="index 2 num 3 offset 0" class="css-3vlw85"><div class="css-f8hv9w"><span>Cons of RabbitMQ</span></div></div><div style="border-bottom:0;padding-bottom:0" data-notes="index 0 num 3 offset 0" class="css-3vlw85"><div class="css-nil"><div class="css-1v4wqws"><div class="css-nil"><div class="css-uxqild"><h2 hidden="" class="css-nil">Cons of Amazon SQS</h2><ul class="css-7c9av6"><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">2</span></div></div><span class="css-rsz8c">Has a max message size (currently 256K)</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">2</span></div></div><span class="css-rsz8c">Proprietary</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">2</span></div></div><span class="css-rsz8c">Difficult to configure</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">1</span></div></div><span class="css-rsz8c">Has a maximum 15 minutes of delayed messages only</span></div></li></ul></div></div></div></div></div><div style="border-bottom:0;padding-bottom:0" data-notes="index 1 num 3 offset 0" class="css-3vlw85"><div class="css-nil"><div class="css-1v4wqws"><div class="css-nil"><div class="css-uxqild"><h2 hidden="" class="css-nil">Cons of Celery</h2><ul class="css-7c9av6"><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">4</span></div></div><span class="css-rsz8c">Sometimes loses tasks</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">1</span></div></div><span class="css-rsz8c">Depends on broker</span></div></li></ul></div></div></div></div></div><div style="border-right:0;border-bottom:0;padding-bottom:0" data-notes="index 2 num 3 offset 0" class="css-3vlw85"><div class="css-nil"><div class="css-1v4wqws"><div class="css-nil"><div class="css-uxqild"><h2 hidden="" class="css-nil">Cons of RabbitMQ</h2><ul class="css-7c9av6"><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">9</span></div></div><span class="css-rsz8c">Too complicated cluster/HA config and management</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">6</span></div></div><span class="css-rsz8c">Needs Erlang runtime. Need ops good with Erlang runtime</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">5</span></div></div><span class="css-rsz8c">Configuration must be done first, not by your code</span></div></li><li class="css-6nrkpz"><div class="css-1mlbi0l"><div class="css-1cda8k4"><div class="css-2an9kq"><svg style="margin-top:3px;margin-bottom:3px" xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8"><path fill="#565656" fill-rule="evenodd" d="M5 0l5 8H0z"></path></svg><span class="css-5x5cr6">4</span></div></div><span class="css-rsz8c">Slow</span></div></li></ul></div></div></div></div></div><div class="css-5k0ecd"><div class="css-p8n7zj"><div class="css-1uq0dwx"><svg class="css-1p6gwer" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 76 76"><g fill="none"><path fill="#068DFE" d="M73.548 63.742V23.29a6.137 6.137 0 0 0-6.129-6.129h-3.677C63.742 7.698 56.044 0 46.58 0c-9.464 0-17.162 7.698-17.162 17.161H8.581a6.136 6.136 0 0 0-6.13 6.13v40.45H0v6.13C0 73.251 2.75 76 6.129 76h63.742C73.251 76 76 73.25 76 69.871v-6.13h-2.452zm-6.129-44.13a3.682 3.682 0 0 1 3.678 3.678v40.452h-2.452V24.516c0-1.352-1.1-2.451-2.451-2.451h-3.175a17.04 17.04 0 0 0 .527-2.452h3.873zm-34.836-6.955l13.01 5.421 4.456 13.363c-1.115.27-2.272.43-3.468.43-8.112 0-14.71-6.598-14.71-14.71 0-1.571.254-3.084.712-4.504zm19.794 18.019l-4.394-13.184 9.818-9.819a14.63 14.63 0 0 1 3.49 9.488c0 6.053-3.678 11.26-8.914 13.515zM46.581 2.452a14.64 14.64 0 0 1 9.489 3.487l-9.775 9.774-12.762-5.316c2.453-4.714 7.376-7.945 13.048-7.945zM4.903 23.29a3.682 3.682 0 0 1 3.678-3.677h21.035c.12.837.289 1.657.526 2.452H9.806a2.454 2.454 0 0 0-2.451 2.451v39.226H4.903V23.29zm68.645 46.581a3.682 3.682 0 0 1-3.677 3.677H6.129a3.682 3.682 0 0 1-3.677-3.677v-3.677h25.254a9.525 9.525 0 0 0 6.407 2.451h7.775c2.39 0 4.645-.867 6.407-2.451h15.447v-2.452H47.299l-.36.36a7.096 7.096 0 0 1-5.052 2.092h-7.775a7.098 7.098 0 0 1-5.053-2.093l-.358-.36H9.806V24.517H31.1c2.762 5.789 8.653 9.807 15.482 9.807 6.828 0 12.72-4.018 15.481-9.807h4.132v41.678h7.354v3.677z"></path><path fill="#068DFE" d="M60.286 51.286c-.76 0-1.468.227-2.057.613l-4.32-3.176c.11-.344.186-.702.186-1.08 0-2.008-1.666-3.643-3.714-3.643s-3.714 1.635-3.714 3.643c0 .418.086.813.219 1.187l-6.935 5.442A3.728 3.728 0 0 0 38 53.714a3.73 3.73 0 0 0-2.215.736l-5.339-3.491c.075-.285.125-.58.125-.888 0-2.008-1.666-3.642-3.714-3.642-2.047 0-3.714 1.634-3.714 3.642 0 .309.05.603.125.888l-5.339 3.491a3.722 3.722 0 0 0-2.215-.736c-2.047 0-3.714 1.635-3.714 3.643S13.667 61 15.714 61c2.048 0 3.715-1.635 3.715-3.643 0-.308-.051-.602-.126-.887l5.34-3.492c.62.457 1.381.736 2.214.736s1.595-.279 2.215-.736l5.339 3.492c-.075.285-.125.58-.125.887C34.286 59.365 35.952 61 38 61s3.714-1.635 3.714-3.643c0-.418-.086-.813-.219-1.187l6.935-5.442a3.728 3.728 0 0 0 4.008-.055l4.319 3.176c-.11.344-.186.702-.186 1.08 0 2.008 1.667 3.642 3.715 3.642 2.047 0 3.714-1.634 3.714-3.642 0-2.009-1.667-3.643-3.714-3.643zM15.714 58.57a1.229 1.229 0 0 1-1.238-1.214c0-.669.556-1.214 1.238-1.214.682 0 1.238.545 1.238 1.214 0 .669-.556 1.214-1.238 1.214zm11.143-7.285a1.229 1.229 0 0 1-1.238-1.215c0-.668.556-1.214 1.238-1.214.682 0 1.238.546 1.238 1.214 0 .67-.556 1.215-1.238 1.215zM38 58.57a1.229 1.229 0 0 1-1.238-1.214c0-.669.556-1.214 1.238-1.214.682 0 1.238.545 1.238 1.214 0 .669-.556 1.214-1.238 1.214zm12.381-9.714a1.229 1.229 0 0 1-1.238-1.214c0-.669.556-1.214 1.238-1.214.682 0 1.238.545 1.238 1.214 0 .669-.556 1.214-1.238 1.214zm9.905 7.286a1.229 1.229 0 0 1-1.238-1.214c0-.67.556-1.215 1.238-1.215a1.23 1.23 0 0 1 1.238 1.215c0 .668-.556 1.214-1.238 1.214z"></path><path fill="#E8F4FF" d="M32 27H12v17h20z"></path><path fill="#068DFE" d="M17 32h10v2H17zm0 5h10v2H17zm18 2h2v2h-2z"></path><path fill="#E8F4FF" d="M39 39h24v2H39z"></path></g></svg><h1 class="css-lr10t7">Sign up to add or upvote cons<span class="css-4yzqpf">Make informed product decisions</span></h1></div><button data-testid="signupFullAccessButton" class="css-st9eg3">Sign up now</button></div></div><div id="stats" style="pointer-events:none;grid-column:span 3;display:block;height:182px;margin-top:-182px"></div><div data-notes="index 0 num 3 offset 0" class="css-3vlw85"><div class="css-acfjt6"><div class="css-w707sh"></div></div></div><div data-notes="index 1 num 3 offset 0" class="css-3vlw85"><div class="css-acfjt6"><div class="css-w707sh"></div></div></div><div style="border-right:0" data-notes="index 2 num 3 offset 0" class="css-3vlw85"><div class="css-acfjt6"><div class="css-w707sh"></div></div></div><div data-notes="index 0 num 3 offset 0" class="css-3vlw85"><div class="css-14bxxd1"><div class="css-1bshyi4">- No public GitHub repository available -</div></div></div><div data-notes="index 1 num 3 offset 0" class="css-3vlw85"><div class="css-14bxxd1"><a href="https://github.com/celery/celery" target="_blank" class="css-1hlwa6q"><svg class="css-f9zb2m" xmlns="http://www.w3.org/2000/svg" width="50" height="48" viewBox="0 0 50 48"><path fill="#161514" fill-rule="evenodd" d="M0 24.608C0 35.48 7.163 44.703 17.097 47.956c1.25.227 1.707-.533 1.707-1.185 0-.584-.022-2.132-.034-4.185-6.954 1.487-8.421-3.3-8.421-3.3-1.138-2.842-2.777-3.599-2.777-3.599-2.27-1.526.172-1.495.172-1.495 2.51.173 3.83 2.536 3.83 2.536 2.23 3.76 5.851 2.674 7.276 2.044.227-1.59.873-2.674 1.586-3.289-5.55-.62-11.387-2.733-11.387-12.162 0-2.686.974-4.884 2.574-6.603-.258-.622-1.116-3.125.245-6.512 0 0 2.098-.662 6.874 2.523 1.994-.547 4.133-.82 6.259-.83 2.124.01 4.262.283 6.258.83 4.773-3.185 6.868-2.523 6.868-2.523 1.365 3.387.507 5.89.25 6.512 1.603 1.72 2.57 3.917 2.57 6.603 0 9.454-5.846 11.534-11.414 12.143.896.76 1.696 2.26 1.696 4.557 0 3.289-.031 5.943-.031 6.75 0 .658.451 1.424 1.719 1.184C42.844 44.693 50 35.477 50 24.608 50 11.017 38.806 0 24.998 0 11.194 0 0 11.017 0 24.608z" opacity=".35"></path></svg><div class="css-1wdjt5z"><div class="css-w707sh"></div></div></a></div></div><div style="border-right:0" data-notes="index 2 num 3 offset 0" class="css-3vlw85"><div class="css-14bxxd1"><a href="https://github.com/rabbitmq/rabbitmq-server" target="_blank" class="css-1hlwa6q"><svg class="css-f9zb2m" xmlns="http://www.w3.org/2000/svg" width="50" height="48" viewBox="0 0 50 48"><path fill="#161514" fill-rule="evenodd" d="M0 24.608C0 35.48 7.163 44.703 17.097 47.956c1.25.227 1.707-.533 1.707-1.185 0-.584-.022-2.132-.034-4.185-6.954 1.487-8.421-3.3-8.421-3.3-1.138-2.842-2.777-3.599-2.777-3.599-2.27-1.526.172-1.495.172-1.495 2.51.173 3.83 2.536 3.83 2.536 2.23 3.76 5.851 2.674 7.276 2.044.227-1.59.873-2.674 1.586-3.289-5.55-.62-11.387-2.733-11.387-12.162 0-2.686.974-4.884 2.574-6.603-.258-.622-1.116-3.125.245-6.512 0 0 2.098-.662 6.874 2.523 1.994-.547 4.133-.82 6.259-.83 2.124.01 4.262.283 6.258.83 4.773-3.185 6.868-2.523 6.868-2.523 1.365 3.387.507 5.89.25 6.512 1.603 1.72 2.57 3.917 2.57 6.603 0 9.454-5.846 11.534-11.414 12.143.896.76 1.696 2.26 1.696 4.557 0 3.289-.031 5.943-.031 6.75 0 .658.451 1.424 1.719 1.184C42.844 44.693 50 35.477 50 24.608 50 11.017 38.806 0 24.998 0 11.194 0 0 11.017 0 24.608z" opacity=".35"></path></svg><div class="css-1wdjt5z"><div class="css-w707sh"></div></div></a></div></div><div id="description" style="pointer-events:none;grid-column:span 3;display:block;height:182px;margin-top:-182px"></div><div data-notes="index 0 num 3 offset 0" class="css-3vlw85"><div class="css-nil"><h2 class="css-i52n91">What is Amazon SQS?</h2><div class="css-13sfqhu">Transmit any volume of data, at any level of throughput, without losing messages or requiring other services to be always available. With SQS, you can offload the administrative burden of operating and scaling a highly available messaging cluster, while paying a low price for only what you use.</div></div></div><div data-notes="index 1 num 3 offset 0" class="css-3vlw85"><div class="css-nil"><h2 class="css-i52n91">What is Celery?</h2><div class="css-13sfqhu">Celery is an asynchronous task queue/job queue based on distributed message passing. It is focused on real-time operation, but supports scheduling as well.</div></div></div><div style="border-right:0" data-notes="index 2 num 3 offset 0" class="css-3vlw85"><div class="css-nil"><h2 class="css-i52n91">What is RabbitMQ?</h2><div class="css-13sfqhu">RabbitMQ gives your applications a common platform to send and receive messages, and your messages a safe place to live until received.</div></div></div><div class="css-5k0ecd"><div data-testid="getAdvice" class="css-1ke07jm"><div class="css-1di6wpo"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div><h1 class="css-lr10t7">Need advice about which tool to choose?<span class="css-4yzqpf">Ask the StackShare community!</span></h1></div><button class="css-st9eg3">Get Advice</button></div></div><div class="css-5k0ecd"><div id="jobs" style="pointer-events:none;grid-column:span 3;display:block;height:182px;margin-top:-182px"></div><div class="css-f8hv9w"><span>Jobs that mention Amazon SQS, Celery, and RabbitMQ as a desired skillset</span></div><div class="css-i5u9v5"><div class="css-1ewdw7x"><div class="css-ih8ay1"><a href="/companies/cbre" title="CBRE&#x27;s company profile"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div></a><div class="css-17niv7d"><a href="https://careers.cbre.com/careers/JobDetail/PRINCIPAL-SOFTWARE-ENGINEER/93957" title="PRINCIPAL SOFTWARE ENGINEER" target="_blank" data-testid="jobsTitle" rel="noreferrer noopener nofollow">PRINCIPAL SOFTWARE ENGINEER</a></div><a href="/companies/cbre" title="CBRE&#x27;s company profile" class="css-6mpj06">CBRE</a><div class="css-nio1yx"><svg xmlns="http://www.w3.org/2000/svg" width="11" height="14" viewBox="0 0 11 14"><g fill="none" fill-rule="evenodd" stroke="#49A8F9"><path d="M4.5 12.205l.013.017c.492.612 1.243.612 1.738-.017a25.074 25.074 0 0 0 1.789-2.37c.475-.717.873-1.41 1.171-2.06.376-.818.575-1.534.575-2.11 0-2.418-1.974-4.38-4.41-4.38-2.437 0-4.411 1.962-4.411 4.38 0 .576.2 1.292.575 2.11.298.65.696 1.343 1.17 2.06a25.074 25.074 0 0 0 1.79 2.37z"></path><ellipse cx="5.375" cy="5.697" rx="1.732" ry="1.732"></ellipse></g></svg><span class="css-ak2nbp">United States of America Texas Richardson</span></div></div><div class="css-9yycaw"><a data-testid="jobsCta" title="PRINCIPAL SOFTWARE ENGINEER" href="https://careers.cbre.com/careers/JobDetail/PRINCIPAL-SOFTWARE-ENGINEER/93957" target="_blank" rel="noreferrer noopener nofollow" class="css-leu1cr">View Job Details</a><div class="css-156fhm0"><div class="css-12alag6"><span class="css-10hy8cb"><a class="css-1pwtf47"><span title="Queue" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/39896/default_42d0c2e8bd0f8244d09ae34f8c42f3ed25e1c9cb.jpg" alt="Queue" class="css-4lwqz5"/></span></a><a class="css-1pwtf47"><span title="Git Flow" class="css-13fg6qi service"><img src="https://img.stackshare.io/no-img-open-source.png" alt="Git Flow" class="css-4lwqz5"/></span></a><a class="css-1pwtf47"><span title="Azure DevOps" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/4313/XNKktHjN_400x400.png" alt="Azure DevOps" class="css-4lwqz5"/></span></a></span><span class="css-pvufaf">+<!-- -->18</span></div><svg xmlns="http://www.w3.org/2000/svg" width="14" height="12" viewBox="0 0 14 12"><g fill="none" fill-rule="evenodd"><rect width="13" height="9" x=".5" y="2.5" stroke="#A1A1A1" rx="2"></rect><path stroke="#A1A1A1" d="M4.5 2.5h5V.999A.492.492 0 0 0 9.01.5H4.99a.5.5 0 0 0-.49.499V2.5z"></path><path fill="#A1A1A1" d="M1 7h12v1H1z"></path><path stroke="#A1A1A1" d="M5.5 7.5v1.501c0 .277.225.499.51.499h1.98a.5.5 0 0 0 .51-.499V7.5h-3z"></path></g></svg></div></div></div><div class="css-1ewdw7x"><div class="css-ih8ay1"><a href="/companies/cbre" title="CBRE&#x27;s company profile"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div></a><div class="css-17niv7d"><a href="https://careers.cbre.com/careers/JobDetail/Sr-Digital-Tech-Manager/90755" title="Sr Digital &amp; Tech Manager" target="_blank" data-testid="jobsTitle" rel="noreferrer noopener nofollow">Sr Digital &amp; Tech Manager</a></div><a href="/companies/cbre" title="CBRE&#x27;s company profile" class="css-6mpj06">CBRE</a><div class="css-nio1yx"><svg xmlns="http://www.w3.org/2000/svg" width="11" height="14" viewBox="0 0 11 14"><g fill="none" fill-rule="evenodd" stroke="#49A8F9"><path d="M4.5 12.205l.013.017c.492.612 1.243.612 1.738-.017a25.074 25.074 0 0 0 1.789-2.37c.475-.717.873-1.41 1.171-2.06.376-.818.575-1.534.575-2.11 0-2.418-1.974-4.38-4.41-4.38-2.437 0-4.411 1.962-4.411 4.38 0 .576.2 1.292.575 2.11.298.65.696 1.343 1.17 2.06a25.074 25.074 0 0 0 1.79 2.37z"></path><ellipse cx="5.375" cy="5.697" rx="1.732" ry="1.732"></ellipse></g></svg><span class="css-ak2nbp">United States of America Texas Richardson</span></div></div><div class="css-9yycaw"><a data-testid="jobsCta" title="Sr Digital &amp; Tech Manager" href="https://careers.cbre.com/careers/JobDetail/Sr-Digital-Tech-Manager/90755" target="_blank" rel="noreferrer noopener nofollow" class="css-leu1cr">View Job Details</a><div class="css-156fhm0"><div class="css-12alag6"><span class="css-10hy8cb"><a class="css-1pwtf47"><span title="Warrant" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/41089/default_1c7987dcedc5d1c55ca4214f76b496643c4aad1d.jpg" alt="Warrant" class="css-4lwqz5"/></span></a><a class="css-1pwtf47"><span title="LINE" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/21473/default_eed5a2be803281883df89f1268dc387f73e5b552.png" alt="LINE" class="css-4lwqz5"/></span></a><a class="css-1pwtf47"><span title="Scope" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/11109/KteF6X89_400x400.jpg" alt="Scope" class="css-4lwqz5"/></span></a></span><span class="css-pvufaf">+<!-- -->13</span></div><svg xmlns="http://www.w3.org/2000/svg" width="14" height="12" viewBox="0 0 14 12"><g fill="none" fill-rule="evenodd"><rect width="13" height="9" x=".5" y="2.5" stroke="#A1A1A1" rx="2"></rect><path stroke="#A1A1A1" d="M4.5 2.5h5V.999A.492.492 0 0 0 9.01.5H4.99a.5.5 0 0 0-.49.499V2.5z"></path><path fill="#A1A1A1" d="M1 7h12v1H1z"></path><path stroke="#A1A1A1" d="M5.5 7.5v1.501c0 .277.225.499.51.499h1.98a.5.5 0 0 0 .51-.499V7.5h-3z"></path></g></svg></div></div></div><div class="css-1ewdw7x"><div class="css-ih8ay1"><a href="/companies/pinterest" title="Pinterest&#x27;s company profile"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div></a><div class="css-17niv7d"><a href="https://www.pinterestcareers.com/job-form?gh_jid=3699835" title="Senior Backend Engineer, User Understanding" target="_blank" data-testid="jobsTitle" rel="noreferrer noopener nofollow">Senior Backend Engineer, User Understanding</a></div><a href="/companies/pinterest" title="Pinterest&#x27;s company profile" class="css-6mpj06">Pinterest</a><div class="css-nio1yx"><svg xmlns="http://www.w3.org/2000/svg" width="11" height="14" viewBox="0 0 11 14"><g fill="none" fill-rule="evenodd" stroke="#49A8F9"><path d="M4.5 12.205l.013.017c.492.612 1.243.612 1.738-.017a25.074 25.074 0 0 0 1.789-2.37c.475-.717.873-1.41 1.171-2.06.376-.818.575-1.534.575-2.11 0-2.418-1.974-4.38-4.41-4.38-2.437 0-4.411 1.962-4.411 4.38 0 .576.2 1.292.575 2.11.298.65.696 1.343 1.17 2.06a25.074 25.074 0 0 0 1.79 2.37z"></path><ellipse cx="5.375" cy="5.697" rx="1.732" ry="1.732"></ellipse></g></svg><span class="css-ak2nbp">San Francisco, CA, US</span></div></div><div class="css-9yycaw"><a data-testid="jobsCta" title="Senior Backend Engineer, User Understanding" href="https://www.pinterestcareers.com/job-form?gh_jid=3699835" target="_blank" rel="noreferrer noopener nofollow" class="css-leu1cr">View Job Details</a><div class="css-156fhm0"><div class="css-12alag6"><span class="css-10hy8cb"><a class="css-1pwtf47"><span title="Dream" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/40514/default_c19d22a0eb52861815d6674d4209c48b26039df7.png" alt="Dream" class="css-4lwqz5"/></span></a><a class="css-1pwtf47"><span title="Kafka" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/1063/kazUJooF_400x400.jpg" alt="Kafka" class="css-4lwqz5"/></span></a><a class="css-1pwtf47"><span title="Hadoop" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/1044/elephant_rgb_sq.png" alt="Hadoop" class="css-4lwqz5"/></span></a></span><span class="css-pvufaf">+<!-- -->5</span></div><svg xmlns="http://www.w3.org/2000/svg" width="14" height="12" viewBox="0 0 14 12"><g fill="none" fill-rule="evenodd"><rect width="13" height="9" x=".5" y="2.5" stroke="#A1A1A1" rx="2"></rect><path stroke="#A1A1A1" d="M4.5 2.5h5V.999A.492.492 0 0 0 9.01.5H4.99a.5.5 0 0 0-.49.499V2.5z"></path><path fill="#A1A1A1" d="M1 7h12v1H1z"></path><path stroke="#A1A1A1" d="M5.5 7.5v1.501c0 .277.225.499.51.499h1.98a.5.5 0 0 0 .51-.499V7.5h-3z"></path></g></svg></div></div></div><div class="css-1ewdw7x"><div class="css-ih8ay1"><a href="/companies/pinterest" title="Pinterest&#x27;s company profile"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div></a><div class="css-17niv7d"><a href="https://www.pinterestcareers.com/job-form?gh_jid=2265981" title="Machine Learning Engineer, Content Quality Signals" target="_blank" data-testid="jobsTitle" rel="noreferrer noopener nofollow">Machine Learning Engineer, Content Quality Signals</a></div><a href="/companies/pinterest" title="Pinterest&#x27;s company profile" class="css-6mpj06">Pinterest</a><div class="css-nio1yx"><svg xmlns="http://www.w3.org/2000/svg" width="11" height="14" viewBox="0 0 11 14"><g fill="none" fill-rule="evenodd" stroke="#49A8F9"><path d="M4.5 12.205l.013.017c.492.612 1.243.612 1.738-.017a25.074 25.074 0 0 0 1.789-2.37c.475-.717.873-1.41 1.171-2.06.376-.818.575-1.534.575-2.11 0-2.418-1.974-4.38-4.41-4.38-2.437 0-4.411 1.962-4.411 4.38 0 .576.2 1.292.575 2.11.298.65.696 1.343 1.17 2.06a25.074 25.074 0 0 0 1.79 2.37z"></path><ellipse cx="5.375" cy="5.697" rx="1.732" ry="1.732"></ellipse></g></svg><span class="css-ak2nbp">Toronto, ON, CA</span></div></div><div class="css-9yycaw"><a data-testid="jobsCta" title="Machine Learning Engineer, Content Quality Signals" href="https://www.pinterestcareers.com/job-form?gh_jid=2265981" target="_blank" rel="noreferrer noopener nofollow" class="css-leu1cr">View Job Details</a><div class="css-156fhm0"><div class="css-12alag6"><span class="css-10hy8cb"><a class="css-1pwtf47"><span title="Dream" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/40514/default_c19d22a0eb52861815d6674d4209c48b26039df7.png" alt="Dream" class="css-4lwqz5"/></span></a><a class="css-1pwtf47"><span title="PyTorch" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/8171/YYpjkbVn_400x400.jpg" alt="PyTorch" class="css-4lwqz5"/></span></a><a class="css-1pwtf47"><span title="Apache Flink" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/2968/kQB_QIB_.png" alt="Apache Flink" class="css-4lwqz5"/></span></a></span><span class="css-pvufaf">+<!-- -->8</span></div><svg xmlns="http://www.w3.org/2000/svg" width="14" height="12" viewBox="0 0 14 12"><g fill="none" fill-rule="evenodd"><rect width="13" height="9" x=".5" y="2.5" stroke="#A1A1A1" rx="2"></rect><path stroke="#A1A1A1" d="M4.5 2.5h5V.999A.492.492 0 0 0 9.01.5H4.99a.5.5 0 0 0-.49.499V2.5z"></path><path fill="#A1A1A1" d="M1 7h12v1H1z"></path><path stroke="#A1A1A1" d="M5.5 7.5v1.501c0 .277.225.499.51.499h1.98a.5.5 0 0 0 .51-.499V7.5h-3z"></path></g></svg></div></div></div><div class="css-1ewdw7x"><div class="css-ih8ay1"><a href="/companies/pinterest" title="Pinterest&#x27;s company profile"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div></a><div class="css-17niv7d"><a href="https://www.pinterestcareers.com/job-form?gh_jid=3317300" title="Software Engineer, Signal Delivery" target="_blank" data-testid="jobsTitle" rel="noreferrer noopener nofollow">Software Engineer, Signal Delivery</a></div><a href="/companies/pinterest" title="Pinterest&#x27;s company profile" class="css-6mpj06">Pinterest</a><div class="css-nio1yx"><svg xmlns="http://www.w3.org/2000/svg" width="11" height="14" viewBox="0 0 11 14"><g fill="none" fill-rule="evenodd" stroke="#49A8F9"><path d="M4.5 12.205l.013.017c.492.612 1.243.612 1.738-.017a25.074 25.074 0 0 0 1.789-2.37c.475-.717.873-1.41 1.171-2.06.376-.818.575-1.534.575-2.11 0-2.418-1.974-4.38-4.41-4.38-2.437 0-4.411 1.962-4.411 4.38 0 .576.2 1.292.575 2.11.298.65.696 1.343 1.17 2.06a25.074 25.074 0 0 0 1.79 2.37z"></path><ellipse cx="5.375" cy="5.697" rx="1.732" ry="1.732"></ellipse></g></svg><span class="css-ak2nbp">Toronto, ON, CA</span></div></div><div class="css-9yycaw"><a data-testid="jobsCta" title="Software Engineer, Signal Delivery" href="https://www.pinterestcareers.com/job-form?gh_jid=3317300" target="_blank" rel="noreferrer noopener nofollow" class="css-leu1cr">View Job Details</a><div class="css-156fhm0"><div class="css-12alag6"><span class="css-10hy8cb"><a class="css-1pwtf47"><span title="Dream" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/40514/default_c19d22a0eb52861815d6674d4209c48b26039df7.png" alt="Dream" class="css-4lwqz5"/></span></a><a class="css-1pwtf47"><span title="Apache Flink" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/2968/kQB_QIB_.png" alt="Apache Flink" class="css-4lwqz5"/></span></a><a class="css-1pwtf47"><span title="Kafka" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/1063/kazUJooF_400x400.jpg" alt="Kafka" class="css-4lwqz5"/></span></a></span><span class="css-pvufaf">+<!-- -->7</span></div><svg xmlns="http://www.w3.org/2000/svg" width="14" height="12" viewBox="0 0 14 12"><g fill="none" fill-rule="evenodd"><rect width="13" height="9" x=".5" y="2.5" stroke="#A1A1A1" rx="2"></rect><path stroke="#A1A1A1" d="M4.5 2.5h5V.999A.492.492 0 0 0 9.01.5H4.99a.5.5 0 0 0-.49.499V2.5z"></path><path fill="#A1A1A1" d="M1 7h12v1H1z"></path><path stroke="#A1A1A1" d="M5.5 7.5v1.501c0 .277.225.499.51.499h1.98a.5.5 0 0 0 .51-.499V7.5h-3z"></path></g></svg></div></div></div><div class="css-1ewdw7x"><div class="css-ih8ay1"><a href="/companies/pinterest" title="Pinterest&#x27;s company profile"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div></a><div class="css-17niv7d"><a href="https://www.pinterestcareers.com/job-form?gh_jid=4226505" title="Software Engineer, Logging Platform" target="_blank" data-testid="jobsTitle" rel="noreferrer noopener nofollow">Software Engineer, Logging Platform</a></div><a href="/companies/pinterest" title="Pinterest&#x27;s company profile" class="css-6mpj06">Pinterest</a><div class="css-nio1yx"><svg xmlns="http://www.w3.org/2000/svg" width="11" height="14" viewBox="0 0 11 14"><g fill="none" fill-rule="evenodd" stroke="#49A8F9"><path d="M4.5 12.205l.013.017c.492.612 1.243.612 1.738-.017a25.074 25.074 0 0 0 1.789-2.37c.475-.717.873-1.41 1.171-2.06.376-.818.575-1.534.575-2.11 0-2.418-1.974-4.38-4.41-4.38-2.437 0-4.411 1.962-4.411 4.38 0 .576.2 1.292.575 2.11.298.65.696 1.343 1.17 2.06a25.074 25.074 0 0 0 1.79 2.37z"></path><ellipse cx="5.375" cy="5.697" rx="1.732" ry="1.732"></ellipse></g></svg><span class="css-ak2nbp">San Francisco, CA</span></div></div><div class="css-9yycaw"><a data-testid="jobsCta" title="Software Engineer, Logging Platform" href="https://www.pinterestcareers.com/job-form?gh_jid=4226505" target="_blank" rel="noreferrer noopener nofollow" class="css-leu1cr">View Job Details</a><div class="css-156fhm0"><div class="css-12alag6"><span class="css-10hy8cb"><a class="css-1pwtf47"><span title="Dream" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/40514/default_c19d22a0eb52861815d6674d4209c48b26039df7.png" alt="Dream" class="css-4lwqz5"/></span></a><a class="css-1pwtf47"><span title="Collect" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/12142/U9KsL1zr_400x400.jpg" alt="Collect" class="css-4lwqz5"/></span></a><a class="css-1pwtf47"><span title="Linux" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/10483/linux.png" alt="Linux" class="css-4lwqz5"/></span></a></span><span class="css-pvufaf">+<!-- -->15</span></div><svg xmlns="http://www.w3.org/2000/svg" width="14" height="12" viewBox="0 0 14 12"><g fill="none" fill-rule="evenodd"><rect width="13" height="9" x=".5" y="2.5" stroke="#A1A1A1" rx="2"></rect><path stroke="#A1A1A1" d="M4.5 2.5h5V.999A.492.492 0 0 0 9.01.5H4.99a.5.5 0 0 0-.49.499V2.5z"></path><path fill="#A1A1A1" d="M1 7h12v1H1z"></path><path stroke="#A1A1A1" d="M5.5 7.5v1.501c0 .277.225.499.51.499h1.98a.5.5 0 0 0 .51-.499V7.5h-3z"></path></g></svg></div></div></div><div class="css-1ewdw7x"><div class="css-ih8ay1"><a href="/companies/pinterest" title="Pinterest&#x27;s company profile"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div></a><div class="css-17niv7d"><a href="https://www.pinterestcareers.com/job-form?gh_jid=4109875" title="Software Engineer, Big Data" target="_blank" data-testid="jobsTitle" rel="noreferrer noopener nofollow">Software Engineer, Big Data</a></div><a href="/companies/pinterest" title="Pinterest&#x27;s company profile" class="css-6mpj06">Pinterest</a><div class="css-nio1yx"><svg xmlns="http://www.w3.org/2000/svg" width="11" height="14" viewBox="0 0 11 14"><g fill="none" fill-rule="evenodd" stroke="#49A8F9"><path d="M4.5 12.205l.013.017c.492.612 1.243.612 1.738-.017a25.074 25.074 0 0 0 1.789-2.37c.475-.717.873-1.41 1.171-2.06.376-.818.575-1.534.575-2.11 0-2.418-1.974-4.38-4.41-4.38-2.437 0-4.411 1.962-4.411 4.38 0 .576.2 1.292.575 2.11.298.65.696 1.343 1.17 2.06a25.074 25.074 0 0 0 1.79 2.37z"></path><ellipse cx="5.375" cy="5.697" rx="1.732" ry="1.732"></ellipse></g></svg><span class="css-ak2nbp">San Francisco, CA, US</span></div></div><div class="css-9yycaw"><a data-testid="jobsCta" title="Software Engineer, Big Data" href="https://www.pinterestcareers.com/job-form?gh_jid=4109875" target="_blank" rel="noreferrer noopener nofollow" class="css-leu1cr">View Job Details</a><div class="css-156fhm0"><div class="css-12alag6"><span class="css-10hy8cb"><a class="css-1pwtf47"><span title="Dream" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/40514/default_c19d22a0eb52861815d6674d4209c48b26039df7.png" alt="Dream" class="css-4lwqz5"/></span></a><a class="css-1pwtf47"><span title="Airflow" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/3130/airflow.png" alt="Airflow" class="css-4lwqz5"/></span></a><a class="css-1pwtf47"><span title="Apache Flink" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/2968/kQB_QIB_.png" alt="Apache Flink" class="css-4lwqz5"/></span></a></span><span class="css-pvufaf">+<!-- -->9</span></div><svg xmlns="http://www.w3.org/2000/svg" width="14" height="12" viewBox="0 0 14 12"><g fill="none" fill-rule="evenodd"><rect width="13" height="9" x=".5" y="2.5" stroke="#A1A1A1" rx="2"></rect><path stroke="#A1A1A1" d="M4.5 2.5h5V.999A.492.492 0 0 0 9.01.5H4.99a.5.5 0 0 0-.49.499V2.5z"></path><path fill="#A1A1A1" d="M1 7h12v1H1z"></path><path stroke="#A1A1A1" d="M5.5 7.5v1.501c0 .277.225.499.51.499h1.98a.5.5 0 0 0 .51-.499V7.5h-3z"></path></g></svg></div></div></div><div class="css-1ewdw7x"><div class="css-ih8ay1"><a href="/companies/pinterest" title="Pinterest&#x27;s company profile"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div></a><div class="css-17niv7d"><a href="https://www.pinterestcareers.com/job/16058082/software-engineer-logging-platform-san-francisco-ca/?gh_src=9b2671b21&amp;utm_source=stackshare&amp;utm_medium=job-board&amp;utm_campaign=2021-contracts" title="Software Engineer, Logging Platform" target="_blank" data-testid="jobsTitle" rel="noreferrer noopener nofollow">Software Engineer, Logging Platform</a></div><a href="/companies/pinterest" title="Pinterest&#x27;s company profile" class="css-6mpj06">Pinterest</a><div class="css-nio1yx"><svg xmlns="http://www.w3.org/2000/svg" width="11" height="14" viewBox="0 0 11 14"><g fill="none" fill-rule="evenodd" stroke="#49A8F9"><path d="M4.5 12.205l.013.017c.492.612 1.243.612 1.738-.017a25.074 25.074 0 0 0 1.789-2.37c.475-.717.873-1.41 1.171-2.06.376-.818.575-1.534.575-2.11 0-2.418-1.974-4.38-4.41-4.38-2.437 0-4.411 1.962-4.411 4.38 0 .576.2 1.292.575 2.11.298.65.696 1.343 1.17 2.06a25.074 25.074 0 0 0 1.79 2.37z"></path><ellipse cx="5.375" cy="5.697" rx="1.732" ry="1.732"></ellipse></g></svg><span class="css-ak2nbp">San Francisco, CA, US; Atlanta, GA, US; New York, NY, US</span></div></div><div class="css-9yycaw"><a data-testid="jobsCta" title="Software Engineer, Logging Platform" href="https://www.pinterestcareers.com/job/16058082/software-engineer-logging-platform-san-francisco-ca/?gh_src=9b2671b21&amp;utm_source=stackshare&amp;utm_medium=job-board&amp;utm_campaign=2021-contracts" target="_blank" rel="noreferrer noopener nofollow" class="css-leu1cr">View Job Details</a><div class="css-156fhm0"><div class="css-12alag6"><span class="css-10hy8cb"><a class="css-1pwtf47"><span title="Dream" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/40514/default_c19d22a0eb52861815d6674d4209c48b26039df7.png" alt="Dream" class="css-4lwqz5"/></span></a><a class="css-1pwtf47"><span title="Collect" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/12142/U9KsL1zr_400x400.jpg" alt="Collect" class="css-4lwqz5"/></span></a><a class="css-1pwtf47"><span title="Linux" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/10483/linux.png" alt="Linux" class="css-4lwqz5"/></span></a></span><span class="css-pvufaf">+<!-- -->15</span></div><svg xmlns="http://www.w3.org/2000/svg" width="14" height="12" viewBox="0 0 14 12"><g fill="none" fill-rule="evenodd"><rect width="13" height="9" x=".5" y="2.5" stroke="#A1A1A1" rx="2"></rect><path stroke="#A1A1A1" d="M4.5 2.5h5V.999A.492.492 0 0 0 9.01.5H4.99a.5.5 0 0 0-.49.499V2.5z"></path><path fill="#A1A1A1" d="M1 7h12v1H1z"></path><path stroke="#A1A1A1" d="M5.5 7.5v1.501c0 .277.225.499.51.499h1.98a.5.5 0 0 0 .51-.499V7.5h-3z"></path></g></svg></div></div></div></div><div class="css-f7loz8"><div><a data-testid="seeJobsForLink" href="/jobs/amazon-sqs" title="Amazon SQS jobs" class="css-1xexurq">See jobs for Amazon SQS</a></div><div><a data-testid="seeJobsForLink" href="/jobs/celery" title="Celery jobs" class="css-1xexurq">See jobs for Celery</a></div><div><a data-testid="seeJobsForLink" href="/jobs/rabbitmq" title="RabbitMQ jobs" class="css-1xexurq">See jobs for RabbitMQ</a></div></div></div><div style="border-bottom:0;padding-bottom:0" data-notes="index 0 num 3 offset 0" class="css-3vlw85"><div class="css-f8hv9w"><span>What companies use Amazon SQS?</span></div></div><div style="border-bottom:0;padding-bottom:0" data-notes="index 1 num 3 offset 0" class="css-3vlw85"><div class="css-f8hv9w"><span>What companies use Celery?</span></div></div><div style="border-right:0;border-bottom:0;padding-bottom:0" data-notes="index 2 num 3 offset 0" class="css-3vlw85"><div class="css-f8hv9w"><span>What companies use RabbitMQ?</span></div></div><div data-notes="index 0 num 3 offset 0" class="css-3vlw85"><div class="css-nil"><div class="css-nil"><div class="css-4pt7vy"><h2 hidden="" class="css-nil">What companies use Amazon SQS?</h2><ul class="css-7c9av6"><li class="css-6nrkpz"><a href="/pinterest/pinterest" class="css-mta8ak"><div class="css-1pwtf47"><span title="Pinterest" class="css-13fg6qi service"><img src="https://img.stackshare.io/company/260/thumb_c077fc04bb219001b7a1ab10f90ebcdb00c143a9.png" alt="Pinterest" class="css-4lwqz5"/></span> </div><span class="css-rsz8c">Pinterest</span></a></li><li class="css-6nrkpz"><a href="/amazon/amazon" class="css-mta8ak"><div class="css-1pwtf47"><span title="Amazon" class="css-13fg6qi service"><img src="https://img.stackshare.io/company/21101/thumb_4b66e1e5f8ca593d78eeba5e4ab192db7a908d7f.jpg" alt="Amazon" class="css-4lwqz5"/></span> </div><span class="css-rsz8c">Amazon</span></a></li><li class="css-6nrkpz"><a href="/cred/cred" class="css-mta8ak"><div class="css-1pwtf47"><span title="CRED" class="css-13fg6qi service"><img src="https://img.stackshare.io/company/157954/thumb_cc6f172c22daf1928d131d050bf4ec6c6ee6ab83.png" alt="CRED" class="css-4lwqz5"/></span> </div><span class="css-rsz8c">CRED</span></a></li><li class="css-6nrkpz"><a href="/lyft/lyft" class="css-mta8ak"><div class="css-1pwtf47"><span title="Lyft" class="css-13fg6qi service"><img src="https://img.stackshare.io/company/206/thumb_23126266e3447ffef9c4eb18b7fd30f0e9876513.jpg" alt="Lyft" class="css-4lwqz5"/></span> </div><span class="css-rsz8c">Lyft</span></a></li><li class="css-6nrkpz"><a href="/getir/tech-stack" class="css-mta8ak"><div class="css-1pwtf47"><span title="Getir" class="css-13fg6qi service"><img src="https://img.stackshare.io/company/165728/thumb_fbf25d77364b39ff713232dcc93c11f8737b7b06.png" alt="Getir" class="css-4lwqz5"/></span> </div><span class="css-rsz8c">Getir</span></a></li><li class="css-6nrkpz"><a href="/kavak/kavak" class="css-mta8ak"><div class="css-1pwtf47"><span title="KAVAK" class="css-13fg6qi service"><img src="https://img.stackshare.io/company/162159/thumb_7e62005c9e5e4680f91c1b1e3cdb644c0ab08bdd.png" alt="KAVAK" class="css-4lwqz5"/></span> </div><span class="css-rsz8c">KAVAK</span></a></li><li class="css-6nrkpz"><a href="/accenture/accenture" class="css-mta8ak"><div class="css-1pwtf47"><span title="Accenture" class="css-13fg6qi service"><img src="https://img.stackshare.io/company/5329/thumb_10422cde5bb694e29df90756ea77e657e4268b9c.jpg" alt="Accenture" class="css-4lwqz5"/></span> </div><span class="css-rsz8c">Accenture</span></a></li></ul></div></div></div></div><div data-notes="index 1 num 3 offset 0" class="css-3vlw85"><div class="css-nil"><div class="css-nil"><div class="css-4pt7vy"><h2 hidden="" class="css-nil">What companies use Celery?</h2><ul class="css-7c9av6"><li class="css-6nrkpz"><a href="/udemy/udemy" class="css-mta8ak"><div class="css-1pwtf47"><span title="Udemy" class="css-13fg6qi service"><img src="https://img.stackshare.io/company/365/thumb_139b6882a2de6f1ba5f36ab52b6180c3cd08f043.png" alt="Udemy" class="css-4lwqz5"/></span> </div><span class="css-rsz8c">Udemy</span></a></li><li class="css-6nrkpz"><a href="/robinhood/robinhood" class="css-mta8ak"><div class="css-1pwtf47"><span title="Robinhood" class="css-13fg6qi service"><img src="https://img.stackshare.io/company/10640/thumb_227fe5c26a1518cab3dc8b8b13e7575636c9db45.png" alt="Robinhood" class="css-4lwqz5"/></span> </div><span class="css-rsz8c">Robinhood</span></a></li><li class="css-6nrkpz"><a href="/accenture/accenture" class="css-mta8ak"><div class="css-1pwtf47"><span title="Accenture" class="css-13fg6qi service"><img src="https://img.stackshare.io/company/5329/thumb_10422cde5bb694e29df90756ea77e657e4268b9c.jpg" alt="Accenture" class="css-4lwqz5"/></span> </div><span class="css-rsz8c">Accenture</span></a></li><li class="css-6nrkpz"><a href="/trivago/trivago" class="css-mta8ak"><div class="css-1pwtf47"><span title="trivago" class="css-13fg6qi service"><img src="https://img.stackshare.io/company/2084/thumb_79d34713b767344ee779dd08bde3899f9a7939b4.png" alt="trivago" class="css-4lwqz5"/></span> </div><span class="css-rsz8c">trivago</span></a></li><li class="css-6nrkpz"><a href="/sentry/sentry" class="css-mta8ak"><div class="css-1pwtf47"><span title="Sentry" class="css-13fg6qi service"><img src="https://img.stackshare.io/company/302/thumb_06242664e4f521d5a00acfb13df35b22e7b69fda.jpg" alt="Sentry" class="css-4lwqz5"/></span> </div><span class="css-rsz8c">Sentry</span></a></li><li class="css-6nrkpz"><a href="/birdview/birdview" class="css-mta8ak"><div class="css-1pwtf47"><span title="Birdview" class="css-13fg6qi service"><img src="https://img.stackshare.io/company/159157/thumb_40f7f35b98cf8711ff17c08bc96b174db7ba0d83.png" alt="Birdview" class="css-4lwqz5"/></span> </div><span class="css-rsz8c">Birdview</span></a></li><li class="css-6nrkpz"><a href="/kasa/kasa" class="css-mta8ak"><div class="css-1pwtf47"><span title="Kasa" class="css-13fg6qi service"><img src="https://img.stackshare.io/company/30258/thumb_49e9de3ce5ac1cd22a3512e2a1df4270d8552fb6.png" alt="Kasa" class="css-4lwqz5"/></span> </div><span class="css-rsz8c">Kasa</span></a></li></ul></div></div></div></div><div style="border-right:0" data-notes="index 2 num 3 offset 0" class="css-3vlw85"><div class="css-nil"><div class="css-nil"><div class="css-4pt7vy"><h2 hidden="" class="css-nil">What companies use RabbitMQ?</h2><ul class="css-7c9av6"><li class="css-6nrkpz"><a href="/robinhood/robinhood" class="css-mta8ak"><div class="css-1pwtf47"><span title="Robinhood" class="css-13fg6qi service"><img src="https://img.stackshare.io/company/10640/thumb_227fe5c26a1518cab3dc8b8b13e7575636c9db45.png" alt="Robinhood" class="css-4lwqz5"/></span> </div><span class="css-rsz8c">Robinhood</span></a></li><li class="css-6nrkpz"><a href="/reddit/reddit" class="css-mta8ak"><div class="css-1pwtf47"><span title="reddit" class="css-13fg6qi service"><img src="https://img.stackshare.io/company/283/thumb_f1ef48929737230c11e513e02f2272b6dc60eeed.jpg" alt="reddit" class="css-4lwqz5"/></span> </div><span class="css-rsz8c">reddit</span></a></li><li class="css-6nrkpz"><a href="/getir/tech-stack" class="css-mta8ak"><div class="css-1pwtf47"><span title="Getir" class="css-13fg6qi service"><img src="https://img.stackshare.io/company/165728/thumb_fbf25d77364b39ff713232dcc93c11f8737b7b06.png" alt="Getir" class="css-4lwqz5"/></span> </div><span class="css-rsz8c">Getir</span></a></li><li class="css-6nrkpz"><a href="/accenture/accenture" class="css-mta8ak"><div class="css-1pwtf47"><span title="Accenture" class="css-13fg6qi service"><img src="https://img.stackshare.io/company/5329/thumb_10422cde5bb694e29df90756ea77e657e4268b9c.jpg" alt="Accenture" class="css-4lwqz5"/></span> </div><span class="css-rsz8c">Accenture</span></a></li><li class="css-6nrkpz"><a href="/hepsiburada/hepsiburada" class="css-mta8ak"><div class="css-1pwtf47"><span title="Hepsiburada" class="css-13fg6qi service"><img src="https://img.stackshare.io/company/29765/thumb_11753097.png" alt="Hepsiburada" class="css-4lwqz5"/></span> </div><span class="css-rsz8c">Hepsiburada</span></a></li><li class="css-6nrkpz"><a href="/circleci/circleci" class="css-mta8ak"><div class="css-1pwtf47"><span title="CircleCI" class="css-13fg6qi service"><img src="https://img.stackshare.io/company/59/thumb_1d293d3c2cd84b0d02876e299a11930bea63b22f.jpg" alt="CircleCI" class="css-4lwqz5"/></span> </div><span class="css-rsz8c">CircleCI</span></a></li><li class="css-6nrkpz"><a href="/atolye15/stack" class="css-mta8ak"><div class="css-1pwtf47"><span title="Atolye15" class="css-13fg6qi service"><img src="https://img.stackshare.io/company/34122/thumb_4765ff1751ec414598e2001cc7c3a01e978249b3.png" alt="Atolye15" class="css-4lwqz5"/></span> </div><span class="css-rsz8c">Atolye15</span></a></li></ul></div></div></div></div><div class="css-5k0ecd"><div class="css-p8n7zj"><div class="css-1uq0dwx"><svg class="css-1p6gwer" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 76 76"><g fill="none"><path fill="#068DFE" d="M73.548 63.742V23.29a6.137 6.137 0 0 0-6.129-6.129h-3.677C63.742 7.698 56.044 0 46.58 0c-9.464 0-17.162 7.698-17.162 17.161H8.581a6.136 6.136 0 0 0-6.13 6.13v40.45H0v6.13C0 73.251 2.75 76 6.129 76h63.742C73.251 76 76 73.25 76 69.871v-6.13h-2.452zm-6.129-44.13a3.682 3.682 0 0 1 3.678 3.678v40.452h-2.452V24.516c0-1.352-1.1-2.451-2.451-2.451h-3.175a17.04 17.04 0 0 0 .527-2.452h3.873zm-34.836-6.955l13.01 5.421 4.456 13.363c-1.115.27-2.272.43-3.468.43-8.112 0-14.71-6.598-14.71-14.71 0-1.571.254-3.084.712-4.504zm19.794 18.019l-4.394-13.184 9.818-9.819a14.63 14.63 0 0 1 3.49 9.488c0 6.053-3.678 11.26-8.914 13.515zM46.581 2.452a14.64 14.64 0 0 1 9.489 3.487l-9.775 9.774-12.762-5.316c2.453-4.714 7.376-7.945 13.048-7.945zM4.903 23.29a3.682 3.682 0 0 1 3.678-3.677h21.035c.12.837.289 1.657.526 2.452H9.806a2.454 2.454 0 0 0-2.451 2.451v39.226H4.903V23.29zm68.645 46.581a3.682 3.682 0 0 1-3.677 3.677H6.129a3.682 3.682 0 0 1-3.677-3.677v-3.677h25.254a9.525 9.525 0 0 0 6.407 2.451h7.775c2.39 0 4.645-.867 6.407-2.451h15.447v-2.452H47.299l-.36.36a7.096 7.096 0 0 1-5.052 2.092h-7.775a7.098 7.098 0 0 1-5.053-2.093l-.358-.36H9.806V24.517H31.1c2.762 5.789 8.653 9.807 15.482 9.807 6.828 0 12.72-4.018 15.481-9.807h4.132v41.678h7.354v3.677z"></path><path fill="#068DFE" d="M60.286 51.286c-.76 0-1.468.227-2.057.613l-4.32-3.176c.11-.344.186-.702.186-1.08 0-2.008-1.666-3.643-3.714-3.643s-3.714 1.635-3.714 3.643c0 .418.086.813.219 1.187l-6.935 5.442A3.728 3.728 0 0 0 38 53.714a3.73 3.73 0 0 0-2.215.736l-5.339-3.491c.075-.285.125-.58.125-.888 0-2.008-1.666-3.642-3.714-3.642-2.047 0-3.714 1.634-3.714 3.642 0 .309.05.603.125.888l-5.339 3.491a3.722 3.722 0 0 0-2.215-.736c-2.047 0-3.714 1.635-3.714 3.643S13.667 61 15.714 61c2.048 0 3.715-1.635 3.715-3.643 0-.308-.051-.602-.126-.887l5.34-3.492c.62.457 1.381.736 2.214.736s1.595-.279 2.215-.736l5.339 3.492c-.075.285-.125.58-.125.887C34.286 59.365 35.952 61 38 61s3.714-1.635 3.714-3.643c0-.418-.086-.813-.219-1.187l6.935-5.442a3.728 3.728 0 0 0 4.008-.055l4.319 3.176c-.11.344-.186.702-.186 1.08 0 2.008 1.667 3.642 3.715 3.642 2.047 0 3.714-1.634 3.714-3.642 0-2.009-1.667-3.643-3.714-3.643zM15.714 58.57a1.229 1.229 0 0 1-1.238-1.214c0-.669.556-1.214 1.238-1.214.682 0 1.238.545 1.238 1.214 0 .669-.556 1.214-1.238 1.214zm11.143-7.285a1.229 1.229 0 0 1-1.238-1.215c0-.668.556-1.214 1.238-1.214.682 0 1.238.546 1.238 1.214 0 .67-.556 1.215-1.238 1.215zM38 58.57a1.229 1.229 0 0 1-1.238-1.214c0-.669.556-1.214 1.238-1.214.682 0 1.238.545 1.238 1.214 0 .669-.556 1.214-1.238 1.214zm12.381-9.714a1.229 1.229 0 0 1-1.238-1.214c0-.669.556-1.214 1.238-1.214.682 0 1.238.545 1.238 1.214 0 .669-.556 1.214-1.238 1.214zm9.905 7.286a1.229 1.229 0 0 1-1.238-1.214c0-.67.556-1.215 1.238-1.215a1.23 1.23 0 0 1 1.238 1.215c0 .668-.556 1.214-1.238 1.214z"></path><path fill="#E8F4FF" d="M32 27H12v17h20z"></path><path fill="#068DFE" d="M17 32h10v2H17zm0 5h10v2H17zm18 2h2v2h-2z"></path><path fill="#E8F4FF" d="M39 39h24v2H39z"></path></g></svg><h1 class="css-lr10t7">Sign up to get full access to all the companies<span class="css-4yzqpf">Make informed product decisions</span></h1></div><button data-testid="signupFullAccessButton" class="css-st9eg3">Sign up now</button></div></div><div id="integrations" style="pointer-events:none;grid-column:span 3;display:block;height:182px;margin-top:-182px"></div><div style="border-bottom:0;padding-bottom:0" data-notes="index 0 num 3 offset 0" class="css-3vlw85"><div class="css-f8hv9w"><span>What tools integrate with Amazon SQS?</span></div></div><div style="border-bottom:0;padding-bottom:0" data-notes="index 1 num 3 offset 0" class="css-3vlw85"><div class="css-f8hv9w"><span>What tools integrate with Celery?</span></div></div><div style="border-right:0;border-bottom:0;padding-bottom:0" data-notes="index 2 num 3 offset 0" class="css-3vlw85"><div class="css-f8hv9w"><span>What tools integrate with RabbitMQ?</span></div></div><div data-notes="index 0 num 3 offset 0" class="css-3vlw85"><div class="css-nil"><div class="css-nil"><div class="css-4pt7vy"><h2 hidden="" class="css-nil">What tools integrate with Amazon SQS?</h2><ul class="css-7c9av6"><li class="css-6nrkpz"><a href="/apache-nifi" class="css-mta8ak"><div class="css-1pwtf47"><span title="Apache NiFi" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/8447/thumb_qpL7Veso_400x400.jpg" alt="Apache NiFi" class="css-4lwqz5"/></span> </div><span class="css-rsz8c">Apache NiFi</span></a></li><li class="css-6nrkpz"><a href="/mongodb-stitch" class="css-mta8ak"><div class="css-1pwtf47"><span title="MongoDB Stitch" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/7174/thumb_stitch-360x360.png" alt="MongoDB Stitch" class="css-4lwqz5"/></span> </div><span class="css-rsz8c">MongoDB Stitch</span></a></li><li class="css-6nrkpz"><a href="/krakend" class="css-mta8ak"><div class="css-1pwtf47"><span title="KrakenD" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/10554/thumb_Hzb-QTj__400x400.jpg" alt="KrakenD" class="css-4lwqz5"/></span> </div><span class="css-rsz8c">KrakenD</span></a></li><li class="css-6nrkpz"><a href="/localstack" class="css-mta8ak"><div class="css-1pwtf47"><span title="LocalStack" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/6715/thumb_localstack.png" alt="LocalStack" class="css-4lwqz5"/></span> </div><span class="css-rsz8c">LocalStack</span></a></li><li class="css-6nrkpz"><a href="/signalfx" class="css-mta8ak"><div class="css-1pwtf47"><span title="SignalFx" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/3018/thumb_KWwTTTyz_400x400.jpg" alt="SignalFx" class="css-4lwqz5"/></span> </div><span class="css-rsz8c">SignalFx</span></a></li><li class="css-6nrkpz"><a href="/streamsets" class="css-mta8ak"><div class="css-1pwtf47"><span title="StreamSets" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/7932/thumb_511b9c033942380f3b6a020aeac11de4b77d34ba.png" alt="StreamSets" class="css-4lwqz5"/></span> </div><span class="css-rsz8c">StreamSets</span></a></li><li class="css-6nrkpz"><a href="/cloudcraft" class="css-mta8ak"><div class="css-1pwtf47"><span title="Cloudcraft" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/3912/thumb_eef9cec4f264d26981a23e6429d825434ad39a20.png" alt="Cloudcraft" class="css-4lwqz5"/></span> </div><span class="css-rsz8c">Cloudcraft</span></a></li></ul></div></div></div></div><div data-notes="index 1 num 3 offset 0" class="css-3vlw85"><div class="css-nil"><div class="css-nil"><div class="css-4pt7vy"><h2 hidden="" class="css-nil">What tools integrate with Celery?</h2><ul class="css-7c9av6"><li class="css-6nrkpz"><a href="/sentry" class="css-mta8ak"><div class="css-1pwtf47"><span title="Sentry" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/191/thumb_lzoDXqf-.png" alt="Sentry" class="css-4lwqz5"/></span> </div><span class="css-rsz8c">Sentry</span></a></li><li class="css-6nrkpz"><a href="/bugsnag" class="css-mta8ak"><div class="css-1pwtf47"><span title="Bugsnag" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/150/thumb_square-logo-small-midnight.png" alt="Bugsnag" class="css-4lwqz5"/></span> </div><span class="css-rsz8c">Bugsnag</span></a></li><li class="css-6nrkpz"><a href="/netuitive" class="css-mta8ak"><div class="css-1pwtf47"><span title="Netuitive" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/3534/thumb_WGzxe39N.png" alt="Netuitive" class="css-4lwqz5"/></span> </div><span class="css-rsz8c">Netuitive</span></a></li><li class="css-6nrkpz"><a href="/hexopress" class="css-mta8ak"><div class="css-1pwtf47"><span title="HexoPress" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/6709/thumb_no-img-open-source.png" alt="HexoPress" class="css-4lwqz5"/></span> </div><span class="css-rsz8c">HexoPress</span></a></li><li class="css-6nrkpz"><a href="/errorship" class="css-mta8ak"><div class="css-1pwtf47"><span title="ErrorShip" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/12132/thumb_unnamed.jpg" alt="ErrorShip" class="css-4lwqz5"/></span> </div><span class="css-rsz8c">ErrorShip</span></a></li></ul></div></div></div></div><div style="border-right:0" data-notes="index 2 num 3 offset 0" class="css-3vlw85"><div class="css-nil"><div class="css-nil"><div class="css-4pt7vy"><h2 hidden="" class="css-nil">What tools integrate with RabbitMQ?</h2><ul class="css-7c9av6"><li class="css-6nrkpz"><a href="/datadog" class="css-mta8ak"><div class="css-1pwtf47"><span title="Datadog" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/669/thumb_34b3b9b42d07c33ac47ecdff75dd6f4f82aa70ee.jpg" alt="Datadog" class="css-4lwqz5"/></span> </div><span class="css-rsz8c">Datadog</span></a></li><li class="css-6nrkpz"><a href="/buddy" class="css-mta8ak"><div class="css-1pwtf47"><span title="Buddy" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/4263/thumb_eIQHH23Q_400x400.jpg" alt="Buddy" class="css-4lwqz5"/></span> </div><span class="css-rsz8c">Buddy</span></a></li><li class="css-6nrkpz"><a href="/netdata" class="css-mta8ak"><div class="css-1pwtf47"><span title="Netdata" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/5766/thumb_Logo.png" alt="Netdata" class="css-4lwqz5"/></span> </div><span class="css-rsz8c">Netdata</span></a></li><li class="css-6nrkpz"><a href="/timescaledb" class="css-mta8ak"><div class="css-1pwtf47"><span title="TimescaleDB" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/6765/thumb_20190510_Timescale_Logo_Tiger.png" alt="TimescaleDB" class="css-4lwqz5"/></span> </div><span class="css-rsz8c">TimescaleDB</span></a></li><li class="css-6nrkpz"><a href="/stackstorm" class="css-mta8ak"><div class="css-1pwtf47"><span title="StackStorm" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/2348/thumb_VaMFEyf3.jpeg" alt="StackStorm" class="css-4lwqz5"/></span> </div><span class="css-rsz8c">StackStorm</span></a></li><li class="css-6nrkpz"><a href="/tutum" class="css-mta8ak"><div class="css-1pwtf47"><span title="Tutum" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/788/thumb_kyi-guwY.png" alt="Tutum" class="css-4lwqz5"/></span> </div><span class="css-rsz8c">Tutum</span></a></li><li class="css-6nrkpz"><a href="/krakend" class="css-mta8ak"><div class="css-1pwtf47"><span title="KrakenD" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/10554/thumb_Hzb-QTj__400x400.jpg" alt="KrakenD" class="css-4lwqz5"/></span> </div><span class="css-rsz8c">KrakenD</span></a></li></ul></div></div></div></div><div class="css-5k0ecd"><div class="css-p8n7zj"><div class="css-1uq0dwx"><svg class="css-1p6gwer" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 76 76"><g fill="none"><path fill="#068DFE" d="M73.548 63.742V23.29a6.137 6.137 0 0 0-6.129-6.129h-3.677C63.742 7.698 56.044 0 46.58 0c-9.464 0-17.162 7.698-17.162 17.161H8.581a6.136 6.136 0 0 0-6.13 6.13v40.45H0v6.13C0 73.251 2.75 76 6.129 76h63.742C73.251 76 76 73.25 76 69.871v-6.13h-2.452zm-6.129-44.13a3.682 3.682 0 0 1 3.678 3.678v40.452h-2.452V24.516c0-1.352-1.1-2.451-2.451-2.451h-3.175a17.04 17.04 0 0 0 .527-2.452h3.873zm-34.836-6.955l13.01 5.421 4.456 13.363c-1.115.27-2.272.43-3.468.43-8.112 0-14.71-6.598-14.71-14.71 0-1.571.254-3.084.712-4.504zm19.794 18.019l-4.394-13.184 9.818-9.819a14.63 14.63 0 0 1 3.49 9.488c0 6.053-3.678 11.26-8.914 13.515zM46.581 2.452a14.64 14.64 0 0 1 9.489 3.487l-9.775 9.774-12.762-5.316c2.453-4.714 7.376-7.945 13.048-7.945zM4.903 23.29a3.682 3.682 0 0 1 3.678-3.677h21.035c.12.837.289 1.657.526 2.452H9.806a2.454 2.454 0 0 0-2.451 2.451v39.226H4.903V23.29zm68.645 46.581a3.682 3.682 0 0 1-3.677 3.677H6.129a3.682 3.682 0 0 1-3.677-3.677v-3.677h25.254a9.525 9.525 0 0 0 6.407 2.451h7.775c2.39 0 4.645-.867 6.407-2.451h15.447v-2.452H47.299l-.36.36a7.096 7.096 0 0 1-5.052 2.092h-7.775a7.098 7.098 0 0 1-5.053-2.093l-.358-.36H9.806V24.517H31.1c2.762 5.789 8.653 9.807 15.482 9.807 6.828 0 12.72-4.018 15.481-9.807h4.132v41.678h7.354v3.677z"></path><path fill="#068DFE" d="M60.286 51.286c-.76 0-1.468.227-2.057.613l-4.32-3.176c.11-.344.186-.702.186-1.08 0-2.008-1.666-3.643-3.714-3.643s-3.714 1.635-3.714 3.643c0 .418.086.813.219 1.187l-6.935 5.442A3.728 3.728 0 0 0 38 53.714a3.73 3.73 0 0 0-2.215.736l-5.339-3.491c.075-.285.125-.58.125-.888 0-2.008-1.666-3.642-3.714-3.642-2.047 0-3.714 1.634-3.714 3.642 0 .309.05.603.125.888l-5.339 3.491a3.722 3.722 0 0 0-2.215-.736c-2.047 0-3.714 1.635-3.714 3.643S13.667 61 15.714 61c2.048 0 3.715-1.635 3.715-3.643 0-.308-.051-.602-.126-.887l5.34-3.492c.62.457 1.381.736 2.214.736s1.595-.279 2.215-.736l5.339 3.492c-.075.285-.125.58-.125.887C34.286 59.365 35.952 61 38 61s3.714-1.635 3.714-3.643c0-.418-.086-.813-.219-1.187l6.935-5.442a3.728 3.728 0 0 0 4.008-.055l4.319 3.176c-.11.344-.186.702-.186 1.08 0 2.008 1.667 3.642 3.715 3.642 2.047 0 3.714-1.634 3.714-3.642 0-2.009-1.667-3.643-3.714-3.643zM15.714 58.57a1.229 1.229 0 0 1-1.238-1.214c0-.669.556-1.214 1.238-1.214.682 0 1.238.545 1.238 1.214 0 .669-.556 1.214-1.238 1.214zm11.143-7.285a1.229 1.229 0 0 1-1.238-1.215c0-.668.556-1.214 1.238-1.214.682 0 1.238.546 1.238 1.214 0 .67-.556 1.215-1.238 1.215zM38 58.57a1.229 1.229 0 0 1-1.238-1.214c0-.669.556-1.214 1.238-1.214.682 0 1.238.545 1.238 1.214 0 .669-.556 1.214-1.238 1.214zm12.381-9.714a1.229 1.229 0 0 1-1.238-1.214c0-.669.556-1.214 1.238-1.214.682 0 1.238.545 1.238 1.214 0 .669-.556 1.214-1.238 1.214zm9.905 7.286a1.229 1.229 0 0 1-1.238-1.214c0-.67.556-1.215 1.238-1.215a1.23 1.23 0 0 1 1.238 1.215c0 .668-.556 1.214-1.238 1.214z"></path><path fill="#E8F4FF" d="M32 27H12v17h20z"></path><path fill="#068DFE" d="M17 32h10v2H17zm0 5h10v2H17zm18 2h2v2h-2z"></path><path fill="#E8F4FF" d="M39 39h24v2H39z"></path></g></svg><h1 class="css-lr10t7">Sign up to get full access to all the tool integrations<span class="css-4yzqpf">Make informed product decisions</span></h1></div><button data-testid="signupFullAccessButton" class="css-st9eg3">Sign up now</button></div></div><div class="css-5k0ecd"><div id="posts" style="pointer-events:none;grid-column:span 3;display:block;height:182px;margin-top:-182px"></div><div class="css-fa6ece"><h3 id="blog-posts">Blog Posts</h3></div><div class="css-vbfwyr"><div class="css-1gtwocl"><div class="css-1kcdhc3"><div class="css-cuzej8"><div class="css-12h9n7t"><a href="/sqreen/how-sqreen-handles-50000-requests-every-minute-in-a-write-heavy-environment">How Sqreen handles 50,000 requests every minute in a write-hea...</a></div></div><div class="css-m2gwm">Sep 17 2019 at 9:38PM</div><div class="css-14kdfdp"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div><p>Sqreen</p></div></div><div class="css-lscypq"><div class="css-12alag6"><span class="css-10hy8cb"><a class="css-1pwtf47"><span title="GitHub" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/27/default_869c34d29acc794d60ecdd5d2b5bfc042a80a4ec.jpg" alt="GitHub" class="css-4lwqz5"/></span></a><a class="css-1pwtf47"><span title="Docker" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/586/n4u37v9t_400x400.png" alt="Docker" class="css-4lwqz5"/></span></a><a class="css-1pwtf47"><span title="React" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/1020/OYIaJ1KK.png" alt="React" class="css-4lwqz5"/></span></a></span><span class="css-pvufaf">+<!-- -->17</span></div><div class="css-maw68b"><div class="favourites"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14"><path fill="none" fill-rule="evenodd" stroke="#ADADAD" stroke-width="1.166" d="M12.045 6.038H8.038l-.137-.389-1.296-3.673L5.17 6.038H1.165L4.488 8.65l-.13.389-1.284 3.853 3.53-2.59.346.253 3.185 2.337L8.721 8.65l.323-.254 3-2.358zm-11.58-.55zm12.28 0z"></path></svg> <span>16</span></div><div class="views"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="11" viewBox="0 0 18 11"><g fill="#ADADAD" fill-rule="evenodd"><path fill-rule="nonzero" stroke="#ADADAD" stroke-width=".533" d="M17.409 4.88a.684.684 0 0 1 0 .862c-.142.176-.378.443-.695.766a15.262 15.262 0 0 1-1.7 1.494c-1.777 1.338-3.675 2.14-5.628 2.14-1.953 0-3.85-.802-5.627-2.14a15.262 15.262 0 0 1-1.7-1.494 11.3 11.3 0 0 1-.696-.766.684.684 0 0 1 0-.862c.142-.176.379-.443.696-.766a15.262 15.262 0 0 1 1.7-1.494C5.536 1.282 7.433.48 9.386.48c1.953 0 3.85.802 5.628 2.14.625.471 1.195.98 1.7 1.494.317.323.553.59.695.766l-.289.233.289-.233zm-2.842-1.666c-1.66-1.25-3.413-1.991-5.18-1.991-1.768 0-3.522.741-5.181 1.991C3.2 3.971 2.429 4.751 1.97 5.311c.458.56 1.23 1.34 2.235 2.097 1.66 1.25 3.413 1.99 5.18 1.99 1.768 0 3.521-.74 5.18-1.99 1.005-.757 1.778-1.537 2.236-2.097-.458-.56-1.23-1.34-2.235-2.097zm2.553 1.9l-.289.233.29-.234zm-.289.16l-.03.037.03.036a.059.059 0 0 1 0-.072z"></path><path d="M9.386 7.54c-1.255 0-2.276-1-2.276-2.229 0-1.23 1.021-2.23 2.276-2.23s2.276 1 2.276 2.23-1.02 2.23-2.276 2.23m0-5.097c-1.613 0-2.926 1.286-2.926 2.867 0 1.58 1.313 2.867 2.926 2.867 1.614 0 2.927-1.286 2.927-2.867 0-1.58-1.313-2.867-2.927-2.867"></path><path d="M9.386 3.718a.322.322 0 0 0-.325.318c0 .177.146.319.325.319.538 0 .976.43.976.956a.967.967 0 0 1-.976.956.967.967 0 0 1-.975-.956.322.322 0 0 0-.325-.319.322.322 0 0 0-.326.319c0 .878.73 1.593 1.626 1.593.897 0 1.626-.715 1.626-1.593s-.73-1.593-1.626-1.593"></path></g></svg><span>6462</span></div></div></div></div><div class="css-1gtwocl"><div class="css-1kcdhc3"><div class="css-cuzej8"><div class="css-12h9n7t"><a href="/dubsmash/dubsmash-scaling-to-200-million-users-with-3-engineers">Dubsmash: Scaling To 200 Million Users With 3 Engineers</a></div></div><div class="css-m2gwm">Dec 14 2017 at 10:02AM</div><div class="css-14kdfdp"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div><p>Dubsmash</p></div></div><div class="css-lscypq"><div class="css-12alag6"><span class="css-10hy8cb"><a class="css-1pwtf47"><span title="GitHub" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/27/default_869c34d29acc794d60ecdd5d2b5bfc042a80a4ec.jpg" alt="GitHub" class="css-4lwqz5"/></span></a><a class="css-1pwtf47"><span title="Python" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/993/pUBY5pVj.png" alt="Python" class="css-4lwqz5"/></span></a><a class="css-1pwtf47"><span title="Node.js" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/1011/n1JRsFeB_400x400.png" alt="Node.js" class="css-4lwqz5"/></span></a></span><span class="css-pvufaf">+<!-- -->47</span></div><div class="css-maw68b"><div class="favourites"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14"><path fill="none" fill-rule="evenodd" stroke="#ADADAD" stroke-width="1.166" d="M12.045 6.038H8.038l-.137-.389-1.296-3.673L5.17 6.038H1.165L4.488 8.65l-.13.389-1.284 3.853 3.53-2.59.346.253 3.185 2.337L8.721 8.65l.323-.254 3-2.358zm-11.58-.55zm12.28 0z"></path></svg> <span>53</span></div><div class="views"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="11" viewBox="0 0 18 11"><g fill="#ADADAD" fill-rule="evenodd"><path fill-rule="nonzero" stroke="#ADADAD" stroke-width=".533" d="M17.409 4.88a.684.684 0 0 1 0 .862c-.142.176-.378.443-.695.766a15.262 15.262 0 0 1-1.7 1.494c-1.777 1.338-3.675 2.14-5.628 2.14-1.953 0-3.85-.802-5.627-2.14a15.262 15.262 0 0 1-1.7-1.494 11.3 11.3 0 0 1-.696-.766.684.684 0 0 1 0-.862c.142-.176.379-.443.696-.766a15.262 15.262 0 0 1 1.7-1.494C5.536 1.282 7.433.48 9.386.48c1.953 0 3.85.802 5.628 2.14.625.471 1.195.98 1.7 1.494.317.323.553.59.695.766l-.289.233.289-.233zm-2.842-1.666c-1.66-1.25-3.413-1.991-5.18-1.991-1.768 0-3.522.741-5.181 1.991C3.2 3.971 2.429 4.751 1.97 5.311c.458.56 1.23 1.34 2.235 2.097 1.66 1.25 3.413 1.99 5.18 1.99 1.768 0 3.521-.74 5.18-1.99 1.005-.757 1.778-1.537 2.236-2.097-.458-.56-1.23-1.34-2.235-2.097zm2.553 1.9l-.289.233.29-.234zm-.289.16l-.03.037.03.036a.059.059 0 0 1 0-.072z"></path><path d="M9.386 7.54c-1.255 0-2.276-1-2.276-2.229 0-1.23 1.021-2.23 2.276-2.23s2.276 1 2.276 2.23-1.02 2.23-2.276 2.23m0-5.097c-1.613 0-2.926 1.286-2.926 2.867 0 1.58 1.313 2.867 2.926 2.867 1.614 0 2.927-1.286 2.927-2.867 0-1.58-1.313-2.867-2.927-2.867"></path><path d="M9.386 3.718a.322.322 0 0 0-.325.318c0 .177.146.319.325.319.538 0 .976.43.976.956a.967.967 0 0 1-.976.956.967.967 0 0 1-.975-.956.322.322 0 0 0-.325-.319.322.322 0 0 0-.326.319c0 .878.73 1.593 1.626 1.593.897 0 1.626-.715 1.626-1.593s-.73-1.593-1.626-1.593"></path></g></svg><span>70954</span></div></div></div></div><div class="css-1gtwocl"><div class="css-1kcdhc3"><div class="css-cuzej8"><div class="css-12h9n7t"><a href="/sentry/how-sentry-receives-20-billion-events-per-month-while-preparing-to-handle-twice-that">How Sentry Receives 20 Billion Events Per Month While Preparin...</a></div></div><div class="css-m2gwm">Nov 8 2017 at 5:09PM</div><div class="css-14kdfdp"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div><p>Sentry</p></div></div><div class="css-lscypq"><div class="css-12alag6"><span class="css-10hy8cb"><a class="css-1pwtf47"><span title="JavaScript" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/1209/javascript.jpeg" alt="JavaScript" class="css-4lwqz5"/></span></a><a class="css-1pwtf47"><span title="GitHub" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/27/default_869c34d29acc794d60ecdd5d2b5bfc042a80a4ec.jpg" alt="GitHub" class="css-4lwqz5"/></span></a><a class="css-1pwtf47"><span title="Python" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/993/pUBY5pVj.png" alt="Python" class="css-4lwqz5"/></span></a></span><span class="css-pvufaf">+<!-- -->31</span></div><div class="css-maw68b"><div class="favourites"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14"><path fill="none" fill-rule="evenodd" stroke="#ADADAD" stroke-width="1.166" d="M12.045 6.038H8.038l-.137-.389-1.296-3.673L5.17 6.038H1.165L4.488 8.65l-.13.389-1.284 3.853 3.53-2.59.346.253 3.185 2.337L8.721 8.65l.323-.254 3-2.358zm-11.58-.55zm12.28 0z"></path></svg> <span>27</span></div><div class="views"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="11" viewBox="0 0 18 11"><g fill="#ADADAD" fill-rule="evenodd"><path fill-rule="nonzero" stroke="#ADADAD" stroke-width=".533" d="M17.409 4.88a.684.684 0 0 1 0 .862c-.142.176-.378.443-.695.766a15.262 15.262 0 0 1-1.7 1.494c-1.777 1.338-3.675 2.14-5.628 2.14-1.953 0-3.85-.802-5.627-2.14a15.262 15.262 0 0 1-1.7-1.494 11.3 11.3 0 0 1-.696-.766.684.684 0 0 1 0-.862c.142-.176.379-.443.696-.766a15.262 15.262 0 0 1 1.7-1.494C5.536 1.282 7.433.48 9.386.48c1.953 0 3.85.802 5.628 2.14.625.471 1.195.98 1.7 1.494.317.323.553.59.695.766l-.289.233.289-.233zm-2.842-1.666c-1.66-1.25-3.413-1.991-5.18-1.991-1.768 0-3.522.741-5.181 1.991C3.2 3.971 2.429 4.751 1.97 5.311c.458.56 1.23 1.34 2.235 2.097 1.66 1.25 3.413 1.99 5.18 1.99 1.768 0 3.521-.74 5.18-1.99 1.005-.757 1.778-1.537 2.236-2.097-.458-.56-1.23-1.34-2.235-2.097zm2.553 1.9l-.289.233.29-.234zm-.289.16l-.03.037.03.036a.059.059 0 0 1 0-.072z"></path><path d="M9.386 7.54c-1.255 0-2.276-1-2.276-2.229 0-1.23 1.021-2.23 2.276-2.23s2.276 1 2.276 2.23-1.02 2.23-2.276 2.23m0-5.097c-1.613 0-2.926 1.286-2.926 2.867 0 1.58 1.313 2.867 2.926 2.867 1.614 0 2.927-1.286 2.927-2.867 0-1.58-1.313-2.867-2.927-2.867"></path><path d="M9.386 3.718a.322.322 0 0 0-.325.318c0 .177.146.319.325.319.538 0 .976.43.976.956a.967.967 0 0 1-.976.956.967.967 0 0 1-.975-.956.322.322 0 0 0-.325-.319.322.322 0 0 0-.326.319c0 .878.73 1.593 1.626 1.593.897 0 1.626-.715 1.626-1.593s-.73-1.593-1.626-1.593"></path></g></svg><span>35478</span></div></div></div></div><div class="css-1gtwocl"><div class="css-1kcdhc3"><div class="css-cuzej8"><div class="css-12h9n7t"><a href="/uploadcare/how-uploadcare-built-a-stack-that-handles-350m-file-api-requests-per-day">How Uploadcare Built a Stack That Handles 350M File API Reques...</a></div></div><div class="css-m2gwm">Jul 28 2017 at 7:41AM</div><div class="css-14kdfdp"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div><p>Uploadcare</p></div></div><div class="css-lscypq"><div class="css-12alag6"><span class="css-10hy8cb"><a class="css-1pwtf47"><span title="GitHub" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/27/default_869c34d29acc794d60ecdd5d2b5bfc042a80a4ec.jpg" alt="GitHub" class="css-4lwqz5"/></span></a><a class="css-1pwtf47"><span title="Python" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/993/pUBY5pVj.png" alt="Python" class="css-4lwqz5"/></span></a><a class="css-1pwtf47"><span title="Node.js" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/1011/n1JRsFeB_400x400.png" alt="Node.js" class="css-4lwqz5"/></span></a></span><span class="css-pvufaf">+<!-- -->46</span></div><div class="css-maw68b"><div class="favourites"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14"><path fill="none" fill-rule="evenodd" stroke="#ADADAD" stroke-width="1.166" d="M12.045 6.038H8.038l-.137-.389-1.296-3.673L5.17 6.038H1.165L4.488 8.65l-.13.389-1.284 3.853 3.53-2.59.346.253 3.185 2.337L8.721 8.65l.323-.254 3-2.358zm-11.58-.55zm12.28 0z"></path></svg> <span>27</span></div><div class="views"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="11" viewBox="0 0 18 11"><g fill="#ADADAD" fill-rule="evenodd"><path fill-rule="nonzero" stroke="#ADADAD" stroke-width=".533" d="M17.409 4.88a.684.684 0 0 1 0 .862c-.142.176-.378.443-.695.766a15.262 15.262 0 0 1-1.7 1.494c-1.777 1.338-3.675 2.14-5.628 2.14-1.953 0-3.85-.802-5.627-2.14a15.262 15.262 0 0 1-1.7-1.494 11.3 11.3 0 0 1-.696-.766.684.684 0 0 1 0-.862c.142-.176.379-.443.696-.766a15.262 15.262 0 0 1 1.7-1.494C5.536 1.282 7.433.48 9.386.48c1.953 0 3.85.802 5.628 2.14.625.471 1.195.98 1.7 1.494.317.323.553.59.695.766l-.289.233.289-.233zm-2.842-1.666c-1.66-1.25-3.413-1.991-5.18-1.991-1.768 0-3.522.741-5.181 1.991C3.2 3.971 2.429 4.751 1.97 5.311c.458.56 1.23 1.34 2.235 2.097 1.66 1.25 3.413 1.99 5.18 1.99 1.768 0 3.521-.74 5.18-1.99 1.005-.757 1.778-1.537 2.236-2.097-.458-.56-1.23-1.34-2.235-2.097zm2.553 1.9l-.289.233.29-.234zm-.289.16l-.03.037.03.036a.059.059 0 0 1 0-.072z"></path><path d="M9.386 7.54c-1.255 0-2.276-1-2.276-2.229 0-1.23 1.021-2.23 2.276-2.23s2.276 1 2.276 2.23-1.02 2.23-2.276 2.23m0-5.097c-1.613 0-2.926 1.286-2.926 2.867 0 1.58 1.313 2.867 2.926 2.867 1.614 0 2.927-1.286 2.927-2.867 0-1.58-1.313-2.867-2.927-2.867"></path><path d="M9.386 3.718a.322.322 0 0 0-.325.318c0 .177.146.319.325.319.538 0 .976.43.976.956a.967.967 0 0 1-.976.956.967.967 0 0 1-.975-.956.322.322 0 0 0-.325-.319.322.322 0 0 0-.326.319c0 .878.73 1.593 1.626 1.593.897 0 1.626-.715 1.626-1.593s-.73-1.593-1.626-1.593"></path></g></svg><span>32272</span></div></div></div></div><div class="css-1gtwocl"><div class="css-1kcdhc3"><div class="css-cuzej8"><div class="css-12h9n7t"><a href="/circleci/how-circleci-processes-4-5-million-builds-per-month">How CircleCI Processes 4.5 Million Builds Per Month</a></div></div><div class="css-m2gwm">Jul 13 2017 at 9:32AM</div><div class="css-14kdfdp"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div><p>CircleCI</p></div></div><div class="css-lscypq"><div class="css-12alag6"><span class="css-10hy8cb"><a class="css-1pwtf47"><span title="GitHub" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/27/default_869c34d29acc794d60ecdd5d2b5bfc042a80a4ec.jpg" alt="GitHub" class="css-4lwqz5"/></span></a><a class="css-1pwtf47"><span title="Git" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/1046/git.png" alt="Git" class="css-4lwqz5"/></span></a><a class="css-1pwtf47"><span title="Docker" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/586/n4u37v9t_400x400.png" alt="Docker" class="css-4lwqz5"/></span></a></span><span class="css-pvufaf">+<!-- -->34</span></div><div class="css-maw68b"><div class="favourites"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14"><path fill="none" fill-rule="evenodd" stroke="#ADADAD" stroke-width="1.166" d="M12.045 6.038H8.038l-.137-.389-1.296-3.673L5.17 6.038H1.165L4.488 8.65l-.13.389-1.284 3.853 3.53-2.59.346.253 3.185 2.337L8.721 8.65l.323-.254 3-2.358zm-11.58-.55zm12.28 0z"></path></svg> <span>29</span></div><div class="views"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="11" viewBox="0 0 18 11"><g fill="#ADADAD" fill-rule="evenodd"><path fill-rule="nonzero" stroke="#ADADAD" stroke-width=".533" d="M17.409 4.88a.684.684 0 0 1 0 .862c-.142.176-.378.443-.695.766a15.262 15.262 0 0 1-1.7 1.494c-1.777 1.338-3.675 2.14-5.628 2.14-1.953 0-3.85-.802-5.627-2.14a15.262 15.262 0 0 1-1.7-1.494 11.3 11.3 0 0 1-.696-.766.684.684 0 0 1 0-.862c.142-.176.379-.443.696-.766a15.262 15.262 0 0 1 1.7-1.494C5.536 1.282 7.433.48 9.386.48c1.953 0 3.85.802 5.628 2.14.625.471 1.195.98 1.7 1.494.317.323.553.59.695.766l-.289.233.289-.233zm-2.842-1.666c-1.66-1.25-3.413-1.991-5.18-1.991-1.768 0-3.522.741-5.181 1.991C3.2 3.971 2.429 4.751 1.97 5.311c.458.56 1.23 1.34 2.235 2.097 1.66 1.25 3.413 1.99 5.18 1.99 1.768 0 3.521-.74 5.18-1.99 1.005-.757 1.778-1.537 2.236-2.097-.458-.56-1.23-1.34-2.235-2.097zm2.553 1.9l-.289.233.29-.234zm-.289.16l-.03.037.03.036a.059.059 0 0 1 0-.072z"></path><path d="M9.386 7.54c-1.255 0-2.276-1-2.276-2.229 0-1.23 1.021-2.23 2.276-2.23s2.276 1 2.276 2.23-1.02 2.23-2.276 2.23m0-5.097c-1.613 0-2.926 1.286-2.926 2.867 0 1.58 1.313 2.867 2.926 2.867 1.614 0 2.927-1.286 2.927-2.867 0-1.58-1.313-2.867-2.927-2.867"></path><path d="M9.386 3.718a.322.322 0 0 0-.325.318c0 .177.146.319.325.319.538 0 .976.43.976.956a.967.967 0 0 1-.976.956.967.967 0 0 1-.975-.956.322.322 0 0 0-.325-.319.322.322 0 0 0-.326.319c0 .878.73 1.593 1.626 1.593.897 0 1.626-.715 1.626-1.593s-.73-1.593-1.626-1.593"></path></g></svg><span>41791</span></div></div></div></div><div class="css-1gtwocl"><div class="css-1kcdhc3"><div class="css-cuzej8"><div class="css-12h9n7t"><a href="/launchdarkly/how-launchdarkly-serves-over-4-billion-feature-flags-daily">How LaunchDarkly Serves Over 4 Billion Feature Flags Daily</a></div></div><div class="css-m2gwm">Sep 9 2016 at 2:06AM</div><div class="css-14kdfdp"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div><p>LaunchDarkly</p></div></div><div class="css-lscypq"><div class="css-12alag6"><span class="css-10hy8cb"><a class="css-1pwtf47"><span title="GitHub" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/27/default_869c34d29acc794d60ecdd5d2b5bfc042a80a4ec.jpg" alt="GitHub" class="css-4lwqz5"/></span></a><a class="css-1pwtf47"><span title="Git" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/1046/git.png" alt="Git" class="css-4lwqz5"/></span></a><a class="css-1pwtf47"><span title="Slack" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/675/RNiSRYOF_400x400.jpg" alt="Slack" class="css-4lwqz5"/></span></a></span><span class="css-pvufaf">+<!-- -->30</span></div><div class="css-maw68b"><div class="favourites"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14"><path fill="none" fill-rule="evenodd" stroke="#ADADAD" stroke-width="1.166" d="M12.045 6.038H8.038l-.137-.389-1.296-3.673L5.17 6.038H1.165L4.488 8.65l-.13.389-1.284 3.853 3.53-2.59.346.253 3.185 2.337L8.721 8.65l.323-.254 3-2.358zm-11.58-.55zm12.28 0z"></path></svg> <span>27</span></div><div class="views"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="11" viewBox="0 0 18 11"><g fill="#ADADAD" fill-rule="evenodd"><path fill-rule="nonzero" stroke="#ADADAD" stroke-width=".533" d="M17.409 4.88a.684.684 0 0 1 0 .862c-.142.176-.378.443-.695.766a15.262 15.262 0 0 1-1.7 1.494c-1.777 1.338-3.675 2.14-5.628 2.14-1.953 0-3.85-.802-5.627-2.14a15.262 15.262 0 0 1-1.7-1.494 11.3 11.3 0 0 1-.696-.766.684.684 0 0 1 0-.862c.142-.176.379-.443.696-.766a15.262 15.262 0 0 1 1.7-1.494C5.536 1.282 7.433.48 9.386.48c1.953 0 3.85.802 5.628 2.14.625.471 1.195.98 1.7 1.494.317.323.553.59.695.766l-.289.233.289-.233zm-2.842-1.666c-1.66-1.25-3.413-1.991-5.18-1.991-1.768 0-3.522.741-5.181 1.991C3.2 3.971 2.429 4.751 1.97 5.311c.458.56 1.23 1.34 2.235 2.097 1.66 1.25 3.413 1.99 5.18 1.99 1.768 0 3.521-.74 5.18-1.99 1.005-.757 1.778-1.537 2.236-2.097-.458-.56-1.23-1.34-2.235-2.097zm2.553 1.9l-.289.233.29-.234zm-.289.16l-.03.037.03.036a.059.059 0 0 1 0-.072z"></path><path d="M9.386 7.54c-1.255 0-2.276-1-2.276-2.229 0-1.23 1.021-2.23 2.276-2.23s2.276 1 2.276 2.23-1.02 2.23-2.276 2.23m0-5.097c-1.613 0-2.926 1.286-2.926 2.867 0 1.58 1.313 2.867 2.926 2.867 1.614 0 2.927-1.286 2.927-2.867 0-1.58-1.313-2.867-2.927-2.867"></path><path d="M9.386 3.718a.322.322 0 0 0-.325.318c0 .177.146.319.325.319.538 0 .976.43.976.956a.967.967 0 0 1-.976.956.967.967 0 0 1-.975-.956.322.322 0 0 0-.325-.319.322.322 0 0 0-.326.319c0 .878.73 1.593 1.626 1.593.897 0 1.626-.715 1.626-1.593s-.73-1.593-1.626-1.593"></path></g></svg><span>17103</span></div></div></div></div><div class="css-1gtwocl"><div class="css-1kcdhc3"><div class="css-cuzej8"><div class="css-12h9n7t"><a href="/troops/how-troops-uses-scala-to-process-millions-of-salesforce-records">How Troops Uses Scala To Process Millions of Salesforce Record...</a></div></div><div class="css-m2gwm">Aug 26 2016 at 8:06AM</div><div class="css-14kdfdp"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div><p>Troops</p></div></div><div class="css-lscypq"><div class="css-12alag6"><span class="css-10hy8cb"><a class="css-1pwtf47"><span title="GitHub" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/27/default_869c34d29acc794d60ecdd5d2b5bfc042a80a4ec.jpg" alt="GitHub" class="css-4lwqz5"/></span></a><a class="css-1pwtf47"><span title="React" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/1020/OYIaJ1KK.png" alt="React" class="css-4lwqz5"/></span></a><a class="css-1pwtf47"><span title="Slack" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/675/RNiSRYOF_400x400.jpg" alt="Slack" class="css-4lwqz5"/></span></a></span><span class="css-pvufaf">+<!-- -->26</span></div><div class="css-maw68b"><div class="favourites"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14"><path fill="none" fill-rule="evenodd" stroke="#ADADAD" stroke-width="1.166" d="M12.045 6.038H8.038l-.137-.389-1.296-3.673L5.17 6.038H1.165L4.488 8.65l-.13.389-1.284 3.853 3.53-2.59.346.253 3.185 2.337L8.721 8.65l.323-.254 3-2.358zm-11.58-.55zm12.28 0z"></path></svg> <span>15</span></div><div class="views"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="11" viewBox="0 0 18 11"><g fill="#ADADAD" fill-rule="evenodd"><path fill-rule="nonzero" stroke="#ADADAD" stroke-width=".533" d="M17.409 4.88a.684.684 0 0 1 0 .862c-.142.176-.378.443-.695.766a15.262 15.262 0 0 1-1.7 1.494c-1.777 1.338-3.675 2.14-5.628 2.14-1.953 0-3.85-.802-5.627-2.14a15.262 15.262 0 0 1-1.7-1.494 11.3 11.3 0 0 1-.696-.766.684.684 0 0 1 0-.862c.142-.176.379-.443.696-.766a15.262 15.262 0 0 1 1.7-1.494C5.536 1.282 7.433.48 9.386.48c1.953 0 3.85.802 5.628 2.14.625.471 1.195.98 1.7 1.494.317.323.553.59.695.766l-.289.233.289-.233zm-2.842-1.666c-1.66-1.25-3.413-1.991-5.18-1.991-1.768 0-3.522.741-5.181 1.991C3.2 3.971 2.429 4.751 1.97 5.311c.458.56 1.23 1.34 2.235 2.097 1.66 1.25 3.413 1.99 5.18 1.99 1.768 0 3.521-.74 5.18-1.99 1.005-.757 1.778-1.537 2.236-2.097-.458-.56-1.23-1.34-2.235-2.097zm2.553 1.9l-.289.233.29-.234zm-.289.16l-.03.037.03.036a.059.059 0 0 1 0-.072z"></path><path d="M9.386 7.54c-1.255 0-2.276-1-2.276-2.229 0-1.23 1.021-2.23 2.276-2.23s2.276 1 2.276 2.23-1.02 2.23-2.276 2.23m0-5.097c-1.613 0-2.926 1.286-2.926 2.867 0 1.58 1.313 2.867 2.926 2.867 1.614 0 2.927-1.286 2.927-2.867 0-1.58-1.313-2.867-2.927-2.867"></path><path d="M9.386 3.718a.322.322 0 0 0-.325.318c0 .177.146.319.325.319.538 0 .976.43.976.956a.967.967 0 0 1-.976.956.967.967 0 0 1-.975-.956.322.322 0 0 0-.325-.319.322.322 0 0 0-.326.319c0 .878.73 1.593 1.626 1.593.897 0 1.626-.715 1.626-1.593s-.73-1.593-1.626-1.593"></path></g></svg><span>5222</span></div></div></div></div><div class="css-1gtwocl"><div class="css-1kcdhc3"><div class="css-cuzej8"><div class="css-12h9n7t"><a href="/opsee-co/how-opsee-chose-a-container-orchestration-platform">How Opsee Chose A Container Orchestration Platform</a></div></div><div class="css-m2gwm">May 27 2016 at 5:01AM</div><div class="css-14kdfdp"><div class="lazyload-wrapper"><div class="lazyload-placeholder"></div></div><p>Opsee Co</p></div></div><div class="css-lscypq"><div class="css-12alag6"><span class="css-10hy8cb"><a class="css-1pwtf47"><span title="GitHub" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/27/default_869c34d29acc794d60ecdd5d2b5bfc042a80a4ec.jpg" alt="GitHub" class="css-4lwqz5"/></span></a><a class="css-1pwtf47"><span title="Docker" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/586/n4u37v9t_400x400.png" alt="Docker" class="css-4lwqz5"/></span></a><a class="css-1pwtf47"><span title="Amazon EC2" class="css-13fg6qi service"><img src="https://img.stackshare.io/service/18/amazon-ec2.png" alt="Amazon EC2" class="css-4lwqz5"/></span></a></span><span class="css-pvufaf">+<!-- -->23</span></div><div class="css-maw68b"><div class="favourites"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14"><path fill="none" fill-rule="evenodd" stroke="#ADADAD" stroke-width="1.166" d="M12.045 6.038H8.038l-.137-.389-1.296-3.673L5.17 6.038H1.165L4.488 8.65l-.13.389-1.284 3.853 3.53-2.59.346.253 3.185 2.337L8.721 8.65l.323-.254 3-2.358zm-11.58-.55zm12.28 0z"></path></svg> <span>12</span></div><div class="views"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="11" viewBox="0 0 18 11"><g fill="#ADADAD" fill-rule="evenodd"><path fill-rule="nonzero" stroke="#ADADAD" stroke-width=".533" d="M17.409 4.88a.684.684 0 0 1 0 .862c-.142.176-.378.443-.695.766a15.262 15.262 0 0 1-1.7 1.494c-1.777 1.338-3.675 2.14-5.628 2.14-1.953 0-3.85-.802-5.627-2.14a15.262 15.262 0 0 1-1.7-1.494 11.3 11.3 0 0 1-.696-.766.684.684 0 0 1 0-.862c.142-.176.379-.443.696-.766a15.262 15.262 0 0 1 1.7-1.494C5.536 1.282 7.433.48 9.386.48c1.953 0 3.85.802 5.628 2.14.625.471 1.195.98 1.7 1.494.317.323.553.59.695.766l-.289.233.289-.233zm-2.842-1.666c-1.66-1.25-3.413-1.991-5.18-1.991-1.768 0-3.522.741-5.181 1.991C3.2 3.971 2.429 4.751 1.97 5.311c.458.56 1.23 1.34 2.235 2.097 1.66 1.25 3.413 1.99 5.18 1.99 1.768 0 3.521-.74 5.18-1.99 1.005-.757 1.778-1.537 2.236-2.097-.458-.56-1.23-1.34-2.235-2.097zm2.553 1.9l-.289.233.29-.234zm-.289.16l-.03.037.03.036a.059.059 0 0 1 0-.072z"></path><path d="M9.386 7.54c-1.255 0-2.276-1-2.276-2.229 0-1.23 1.021-2.23 2.276-2.23s2.276 1 2.276 2.23-1.02 2.23-2.276 2.23m0-5.097c-1.613 0-2.926 1.286-2.926 2.867 0 1.58 1.313 2.867 2.926 2.867 1.614 0 2.927-1.286 2.927-2.867 0-1.58-1.313-2.867-2.927-2.867"></path><path d="M9.386 3.718a.322.322 0 0 0-.325.318c0 .177.146.319.325.319.538 0 .976.43.976.956a.967.967 0 0 1-.976.956.967.967 0 0 1-.975-.956.322.322 0 0 0-.325-.319.322.322 0 0 0-.326.319c0 .878.73 1.593 1.626 1.593.897 0 1.626-.715 1.626-1.593s-.73-1.593-1.626-1.593"></path></g></svg><span>6431</span></div></div></div></div></div><div class="css-1i8b05s"><button class="css-1iqua1m">Sign up to see more</button></div></div><div id="alternatives" style="pointer-events:none;grid-column:span 3;display:block;height:182px;margin-top:-182px"></div><div style="border-bottom:none" class="css-5k0ecd"><div class="css-4d5oui"><div class="css-ptavxb">What are some alternatives to Amazon SQS, Celery, and RabbitMQ?</div><div class="css-10pc7td"><div class="css-1ukyolz"><div class="css-1uackhz">Amazon MQ</div></div><div class="css-1ofkegx">Amazon MQ is a managed message broker service for Apache ActiveMQ that makes it easy to set up and operate message brokers in the cloud.</div><div class="css-1ukyolz"><div class="css-1uackhz">Kafka</div></div><div class="css-1ofkegx">Kafka is a distributed, partitioned, replicated commit log service. It provides the functionality of a messaging system, but with a unique design.</div><div class="css-1ukyolz"><div class="css-1uackhz">Redis</div></div><div class="css-1ofkegx">Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache, and message broker. Redis provides data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes, and streams.</div><div class="css-1ukyolz"><div class="css-1uackhz">ActiveMQ</div></div><div class="css-1ofkegx">Apache ActiveMQ is fast, supports many Cross Language Clients and Protocols, comes with easy to use Enterprise Integration Patterns and many advanced features while fully supporting JMS 1.1 and J2EE 1.4. Apache ActiveMQ is released under the Apache 2.0 License.</div><div class="css-1ukyolz"><div class="css-1uackhz">Amazon SNS</div></div><div class="css-1ofkegx">Amazon Simple Notification Service makes it simple and cost-effective to push to mobile devices such as iPhone, iPad, Android, Kindle Fire, and internet connected smart devices, as well as pushing to other distributed services. Besides pushing cloud notifications directly to mobile devices, SNS can also deliver notifications by SMS text message or email, to Simple Queue Service (SQS) queues, or to any HTTP endpoint.</div></div><a data-testid="seeAllAlternativesLink" href="/rabbitmq/alternatives" class="css-1xexurq">See all alternatives</a></div></div></div><aside class="css-1cqgl9p"><div class="css-p223ph"><div style="position:sticky;top:23%"><div class="css-81jah4"></div><div class="css-cn7d1w"><svg class="css-1fj3l7d" xmlns="http://www.w3.org/2000/svg" width="123" height="70" viewBox="0 0 123 70"><g fill="none" fill-rule="evenodd"><g fill="#008FF9" stroke="#008FF9" opacity=".74"><g stroke-width="2.207" opacity=".413"><path d="M62.27 24.009c6.068 0 11.004-4.937 11.004-11.005C73.274 6.937 68.338 2 62.27 2S51.266 6.937 51.266 13.004c0 6.068 4.936 11.005 11.004 11.005zm0-19.368c4.612 0 8.363 3.752 8.363 8.363 0 4.612-3.751 8.364-8.363 8.364-4.611 0-8.363-3.752-8.363-8.364 0-4.611 3.752-8.363 8.363-8.363zm-.579 24.58c-11.177 0-20.271 9.28-20.271 20.689 0 .73.58 1.32 1.294 1.32.714 0 1.294-.59 1.294-1.32 0-9.951 7.932-18.047 17.683-18.047 9.75 0 17.683 8.096 17.683 18.047 0 .73.58 1.32 1.294 1.32.714 0 1.294-.59 1.294-1.32 0-11.407-9.093-20.688-20.271-20.688z" opacity=".502"></path></g><g opacity=".266"><path stroke-width="1.927" d="M33.506 27.484c-5.323 0-9.653-4.33-9.653-9.653s4.33-9.653 9.653-9.653c5.322 0 9.653 4.33 9.653 9.653 0 5.322-4.33 9.653-9.653 9.653zm0-16.99c-4.045 0-7.336 3.292-7.336 7.337s3.29 7.336 7.336 7.336c4.045 0 7.336-3.291 7.336-7.336s-3.291-7.336-7.336-7.336z" opacity=".502"></path><path stroke-width="1.986" d="M42.973 33.722c9.802 2.263 15.898 12.243 13.588 22.246a1.176 1.176 0 0 1-1.402.896 1.176 1.176 0 0 1-.867-1.42c2.015-8.726-3.303-17.432-11.853-19.406-8.55-1.974-17.146 3.52-19.161 12.246a1.177 1.177 0 0 1-1.402.896 1.176 1.176 0 0 1-.867-1.42c2.31-10.003 12.162-16.3 21.964-14.038z" opacity=".502"></path></g><g opacity=".266"><path stroke-width="1.927" d="M90.263 27.484c5.323 0 9.653-4.33 9.653-9.653s-4.33-9.653-9.653-9.653c-5.322 0-9.653 4.33-9.653 9.653 0 5.322 4.33 9.653 9.653 9.653zm0-16.99c4.045 0 7.337 3.292 7.337 7.337s-3.292 7.336-7.337 7.336-7.336-3.291-7.336-7.336 3.291-7.336 7.336-7.336z" opacity=".502"></path><path stroke-width="1.986" d="M80.217 33.722c-9.802 2.263-15.898 12.243-13.588 22.246.147.64.775 1.041 1.402.896a1.176 1.176 0 0 0 .867-1.42c-2.015-8.726 3.303-17.432 11.853-19.406 8.55-1.974 17.146 3.52 19.161 12.246.148.64.776 1.041 1.402.896a1.176 1.176 0 0 0 .867-1.42c-2.31-10.003-12.162-16.3-21.964-14.038z" opacity=".502"></path></g><g stroke-width="1.413" opacity=".184"><path d="M111.547 31.915a7.05 7.05 0 0 0 7.042-7.042c0-3.884-3.159-7.043-7.042-7.043-3.885 0-7.043 3.16-7.043 7.043s3.16 7.042 7.043 7.042zm0-12.395a5.358 5.358 0 0 1 5.352 5.353c0 2.951-2.4 5.352-5.352 5.352a5.358 5.358 0 0 1-5.353-5.352 5.359 5.359 0 0 1 5.353-5.353zm-6.725 21.023a.815.815 0 0 1-1.119.139.75.75 0 0 1-.144-1.08c2.39-2.98 6.001-4.69 9.906-4.69 2.508 0 4.927.712 6.997 2.06a.753.753 0 0 1 .215 1.068.818.818 0 0 1-1.109.207 11.152 11.152 0 0 0-6.103-1.796c-3.406 0-6.557 1.492-8.642 4.092z" opacity=".502"></path></g><g stroke-width="1.413" opacity=".177"><path d="M10.871 31.915a7.05 7.05 0 0 1-7.042-7.042c0-3.884 3.159-7.043 7.042-7.043 3.885 0 7.043 3.16 7.043 7.043s-3.16 7.042-7.043 7.042zm0-12.395a5.358 5.358 0 0 0-5.352 5.353c0 2.951 2.4 5.352 5.352 5.352 2.952 0 5.353-2.4 5.353-5.352a5.359 5.359 0 0 0-5.353-5.353zM3.036 40.543a.818.818 0 0 1-1.121.139.751.751 0 0 1-.144-1.08c2.39-2.98 6.002-4.69 9.907-4.69 2.507 0 4.927.712 6.996 2.06a.751.751 0 0 1 .215 1.068.818.818 0 0 1-1.109.207 11.147 11.147 0 0 0-6.102-1.797c-3.407 0-6.557 1.492-8.643 4.092z" opacity=".502"></path></g></g><g><path fill="#008FF9" stroke="#008FF9" stroke-width=".842" d="M61.047 16.51c-6.44 3.802-13.035 6.6-20.164 8.553a2.453 2.453 0 0 0-1.302.88 2.452 2.452 0 0 0-.504 1.487v9.447c0 11.603 5.26 19.355 10.029 24.121.827.81 1.69 1.57 2.569 2.274 2.796 2.241 5.735 3.912 7.985 4.731 1.047.382 1.953.58 2.636.58.684 0 1.59-.198 2.637-.58 2.19-.797 5.033-2.401 7.762-4.554a34.855 34.855 0 0 0 2.813-2.472c4.57-4.487 10.007-12.303 10.007-24.1V27.43c0-.603-.16-1.098-.46-1.493-.297-.388-.736-.684-1.346-.874-6.932-1.899-13.906-4.857-20.166-8.553a2.454 2.454 0 0 0-2.495 0z"></path><path fill="#FFF" stroke="#008FF9" stroke-width=".605" d="M62.079 18.257c-6.664 3.935-13.492 6.82-20.974 8.945v9.675c0 10.19 4.31 17.217 8.465 21.7V43.259c0-.483.197-.922.515-1.24a1.75 1.75 0 0 1 1.24-.514h2.21v-1.447c0-2.426.97-4.627 2.538-6.222 1.566-1.591 3.727-2.579 6.111-2.579a8.55 8.55 0 0 1 6.112 2.58 8.863 8.863 0 0 1 2.539 6.227v1.441h2.43c.484 0 .923.197 1.24.515.318.317.515.756.515 1.24v15.31c4.065-4.333 8.465-11.397 8.465-21.694l-.092-9.795-1.11-.31c-6.809-1.951-13.627-4.887-20.204-8.515zm.105 15.133c-1.81 0-3.451.748-4.64 1.956a6.7 6.7 0 0 0-1.921 4.71v1.448h13.123v-1.447a6.697 6.697 0 0 0-1.922-4.711 6.491 6.491 0 0 0-4.64-1.956z"></path><path fill="#FFF" d="M83.182 36.877c0 9.758-3.988 16.585-7.86 20.916V43.258a2.059 2.059 0 0 0-2.056-2.056h-2.129v-1.139c0-5.021-4.014-9.11-8.953-9.11-4.938 0-8.952 4.089-8.952 9.104v1.145h-1.908a2.059 2.059 0 0 0-2.056 2.056v14.535a4.32 4.32 0 0 1-.11-.122c-3.837-4.336-7.75-11.129-7.75-20.794V27.43c0-.055.037-.103.09-.118 7.331-2.009 14.114-4.885 20.735-8.794.02-.012.04-.017.062-.017s.043.005.062.017c6.437 3.8 13.607 6.84 20.735 8.794.053.015.09.063.09.118v9.447z"></path><path fill="#FFF" d="M67.197 57.374c-.6 0-1.1-.413-1.212-.96 0 0-.032-.23 0-.463.112-.546.613-.96 1.211-.96.681 0 1.235.535 1.235 1.192 0 .657-.554 1.191-1.235 1.191m-10.759-4.22c-.68 0-1.234-.534-1.234-1.19 0-.658.553-1.192 1.234-1.192.681 0 1.235.534 1.235 1.191s-.554 1.192-1.235 1.192m9.539-5.687v-.008c.112-.546.612-.96 1.21-.96.681 0 1.235.534 1.235 1.192 0 .657-.554 1.191-1.234 1.191-.6 0-1.1-.413-1.211-.96-.028-.21 0-.455 0-.455m1.22 6.446c-1.07 0-1.972.69-2.256 1.635h-1.393l-2.175-3.612v-.006l2.172-3.605h1.386c.285.944 1.187 1.634 2.257 1.634 1.297 0 2.35-1.016 2.35-2.268 0-1.253-1.053-2.269-2.35-2.269-1.07 0-1.972.69-2.257 1.634h-2.113l-.021-.012-2.56 4.252-.02.032h-1.521c-.285-.944-1.187-1.634-2.257-1.634-1.297 0-2.35 1.016-2.35 2.268 0 1.253 1.053 2.268 2.35 2.268 1.07 0 1.972-.69 2.257-1.634h1.555l2.546 4.227.011-.007h2.134c.284.944 1.187 1.634 2.256 1.634 1.298 0 2.35-1.016 2.35-2.268 0-1.253-1.052-2.269-2.35-2.269m1.246-12.712H55.925v-1.145c0-3.511 2.806-6.364 6.26-6.364 3.452 0 6.258 2.853 6.258 6.364v1.145z"></path></g></g></svg><div class="css-i272tr">See all the technologies you’re using across your company.<!-- --> </div><a href="/manage-companies/enterprise" class="css-56ijgy">Sign up for StackShare Enterprise</a><a href="/enterprise" class="css-1l7t0dr">Learn More</a></div></div></div></aside></div></main><div class="css-69zjs9"><div class="css-8a04gk"><div class="css-1m38k02"><h2 class="css-162qu2y">Related Comparisons</h2><a href="/stackups/celery-vs-kafka-vs-rabbitmq" title="Celery vs Kafka vs RabbitMQ" class="css-p797gu">Celery vs Kafka vs RabbitMQ</a><a href="/stackups/kafka-vs-nsq-vs-rabbitmq" title="Kafka vs NSQ vs RabbitMQ" class="css-p797gu">Kafka vs NSQ vs RabbitMQ</a><a href="/stackups/activemq-vs-amazon-sqs-vs-rabbitmq" title="ActiveMQ vs Amazon SQS vs RabbitMQ" class="css-p797gu">ActiveMQ vs Amazon SQS vs RabbitMQ</a><a href="/stackups/amazon-sqs-vs-kafka" title="Amazon SQS vs Kafka" class="css-p797gu">Amazon SQS vs Kafka</a><a href="/stackups/kafka-vs-rabbitmq" title="Kafka vs RabbitMQ" class="css-p797gu">Kafka vs RabbitMQ</a></div><div class="css-1m38k02"><h2 class="css-162qu2y">Trending Comparisons</h2><a href="/stackups/django-vs-laravel-vs-nodejs" title="Django vs Laravel vs Node.js" class="css-p797gu">Django vs Laravel vs Node.js</a><a href="/stackups/bootstrap-vs-foundation-vs-material-ui" title="Bootstrap vs Foundation vs Material-UI" class="css-p797gu">Bootstrap vs Foundation vs Material-UI</a><a href="/stackups/nodejs-vs-spring-boot" title="Node.js vs Spring Boot" class="css-p797gu">Node.js vs Spring Boot</a><a href="/stackups/flyway-vs-liquibase" title="Flyway vs Liquibase" class="css-p797gu">Flyway vs Liquibase</a><a href="/stackups/aws-codecommit-vs-bitbucket-vs-github" title="AWS CodeCommit vs Bitbucket vs GitHub" class="css-p797gu">AWS CodeCommit vs Bitbucket vs GitHub</a></div><div class="css-1m38k02"><h2 class="css-162qu2y">Top Comparisons</h2><a href="/stackups/bitbucket-vs-github-vs-gitlab" title="Bitbucket vs GitHub vs GitLab" class="css-p797gu">Bitbucket vs GitHub vs GitLab</a><a href="/stackups/bootstrap-vs-materialize" title="Bootstrap vs Materialize" class="css-p797gu">Bootstrap vs Materialize</a><a href="/stackups/hipchat-vs-mattermost-vs-slack" title="HipChat vs Mattermost vs Slack" class="css-p797gu">HipChat vs Mattermost vs Slack</a><a href="/stackups/postman-vs-swagger-ui" title="Postman vs Swagger UI" class="css-p797gu">Postman vs Swagger UI</a></div></div></div></div></div> <script> renderComponent('Stackup','Stackup-react-component-f64f6f22-1d31-4ffb-b32b-766de043cde6','Stackup-apollo-state-f64f6f22-1d31-4ffb-b32b-766de043cde6','Stackup-glamor-f64f6f22-1d31-4ffb-b32b-766de043cde6', 'apollo','{"route":"/stackups/amazon-sqs-vs-celery-vs-rabbitmq","userId":null,"featureFlags":{}}'); </script>
<script type="application/json" id="Footer-apollo-state-b887cc69-1029-4251-be72-f428c4a31686">{}</script> <!-- glamorIds: 21 --> <script type="application/json" id="Footer-glamor-b887cc69-1029-4251-be72-f428c4a31686">["1htug8r","1yodi52","iepywa","x5hg3h","u0iaox","9ilv8v","ts0y2j","cs546h","1fco1ts","11a2nsi","1npm75a","1gn11bn","1y302zr","11gxadc","1iqd2ec","lneilx","de1dx1","1h53588","12k57td","j1o656","zr18wh"]</script> <style>@-webkit-keyframes animation_1htug8r{to{transform:rotate(360deg);-webkit-transform:rotate(360deg);}}@-moz-keyframes animation_1htug8r{to{transform:rotate(360deg);-webkit-transform:rotate(360deg);}}@-o-keyframes animation_1htug8r{to{transform:rotate(360deg);-webkit-transform:rotate(360deg);}}@keyframes animation_1htug8r{to{transform:rotate(360deg);-webkit-transform:rotate(360deg);}}@-webkit-keyframes animation_1yodi52{0%{background-position:0 0;}100%{background-position:100em 0;}}@-moz-keyframes animation_1yodi52{0%{background-position:0 0;}100%{background-position:100em 0;}}@-o-keyframes animation_1yodi52{0%{background-position:0 0;}100%{background-position:100em 0;}}@keyframes animation_1yodi52{0%{background-position:0 0;}100%{background-position:100em 0;}}@-webkit-keyframes animation_iepywa{0%, 100%{opacity:0;}50%{opacity:1;}}@-moz-keyframes animation_iepywa{0%, 100%{opacity:0;}50%{opacity:1;}}@-o-keyframes animation_iepywa{0%, 100%{opacity:0;}50%{opacity:1;}}@keyframes animation_iepywa{0%, 100%{opacity:0;}50%{opacity:1;}}@-webkit-keyframes animation_x5hg3h{100%{stroke-dashoffset:0;}}@-moz-keyframes animation_x5hg3h{100%{stroke-dashoffset:0;}}@-o-keyframes animation_x5hg3h{100%{stroke-dashoffset:0;}}@keyframes animation_x5hg3h{100%{stroke-dashoffset:0;}}@-webkit-keyframes animation_u0iaox{0%, 100%{transform:none;-webkit-transform:none;}50%{transform:scale3d(1.1, 1.1, 1);-webkit-transform:scale3d(1.1, 1.1, 1);}}@-moz-keyframes animation_u0iaox{0%, 100%{transform:none;-webkit-transform:none;}50%{transform:scale3d(1.1, 1.1, 1);-webkit-transform:scale3d(1.1, 1.1, 1);}}@-o-keyframes animation_u0iaox{0%, 100%{transform:none;-webkit-transform:none;}50%{transform:scale3d(1.1, 1.1, 1);-webkit-transform:scale3d(1.1, 1.1, 1);}}@keyframes animation_u0iaox{0%, 100%{transform:none;-webkit-transform:none;}50%{transform:scale3d(1.1, 1.1, 1);-webkit-transform:scale3d(1.1, 1.1, 1);}}@-webkit-keyframes animation_9ilv8v{100%{box-shadow:inset 0px 0px 0px 30px #068dfe;}}@-moz-keyframes animation_9ilv8v{100%{box-shadow:inset 0px 0px 0px 30px #068dfe;}}@-o-keyframes animation_9ilv8v{100%{box-shadow:inset 0px 0px 0px 30px #068dfe;}}@keyframes animation_9ilv8v{100%{box-shadow:inset 0px 0px 0px 30px #068dfe;}}.css-ts0y2j,[data-css-ts0y2j]{font-family:Open Sans, Helvetica Neue, Helvetica, Arial, sans;font-weight:400;font-size:13px;line-height:1.4;letter-spacing:normal;-webkit-font-smoothing:antialiased;background:#333;display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;justify-content:center;align-items:center;padding:50px 0 80px;-webkit-box-pack:center;-webkit-justify-content:center;-webkit-box-align:center;-webkit-align-items:center;}@media only screen and (max-width: 768px){.css-ts0y2j,[data-css-ts0y2j]{padding:0 0 40px;}}.css-cs546h,[data-css-cs546h]{max-width:1220px;}@media only screen and (max-width: 992px){.css-cs546h,[data-css-cs546h]{width:700px;}}@media only screen and (min-width: 993px){.css-cs546h,[data-css-cs546h]{width:955px;}}@media only screen and (min-width: 1200px){.css-cs546h,[data-css-cs546h]{width:1220px;}}.css-1fco1ts,[data-css-1fco1ts]{display:grid;grid-template-columns:repeat(4, 1fr);justify-items:center;column-gap:3%;-ms-grid-template-columns:repeat(4, 1fr);-webkit-column-gap:3%;-moz-column-gap:3%;}@media only screen and (max-width: 768px){.css-1fco1ts,[data-css-1fco1ts]{grid-template-columns:1fr;text-align:center;-ms-grid-template-columns:1fr;}}.css-11a2nsi,[data-css-11a2nsi]{display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;flex-direction:column;align-items:center;text-align:left;width:100%;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;}.css-1npm75a,[data-css-1npm75a]{display:-webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex;flex-direction:column;color:#fff;font-size:14px;line-height:1.7;letter-spacing:0.3px;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;}.css-1npm75a a,[data-css-1npm75a] a{color:#fff;text-decoration:none;}.css-1npm75a a:visited,[data-css-1npm75a] a:visited{color:#fff;}.css-1npm75a a:hover,[data-css-1npm75a] a:hover{color:#068dfe;}.css-1npm75a a:hover span,[data-css-1npm75a] a:hover span{color:#fff;}.css-1npm75a a:active span,[data-css-1npm75a] a:active span{color:#fff;}@media only screen and (max-width: 768px){.css-1npm75a,[data-css-1npm75a]{align-items:center;width:95%;font-size:16px;line-height:2;-webkit-box-align:center;-webkit-align-items:center;}}.css-1gn11bn,[data-css-1gn11bn]{color:#fff;font-weight:600;font-size:20px;letter-spacing:0.38px;}@media only screen and (max-width: 768px){.css-1gn11bn,[data-css-1gn11bn]{margin-top:36px;margin-bottom:24px;}}.css-1y302zr,[data-css-1y302zr]{position:relative;}@media only screen and (min-width: 769px){.css-1y302zr,[data-css-1y302zr]{margin-right:auto;}}.css-11gxadc,[data-css-11gxadc]{padding:0;margin:8px 0;}.css-11gxadc li,[data-css-11gxadc] li{display:inline-block;margin:0 5px;}@media only screen and (min-width: 769px){.css-11gxadc li:first-child,[data-css-11gxadc] li:first-child{margin-left:0;}}@media only screen and (max-width: 768px){.css-11gxadc,[data-css-11gxadc]{margin:0 0 80px;}}.css-1iqd2ec svg:hover path,[data-css-1iqd2ec] svg:hover path{fill:#939393;}.css-lneilx,[data-css-lneilx]{margin-top:15px;line-height:100%;}.css-lneilx svg,[data-css-lneilx] svg{max-width:135px;}.css-lneilx svg g,[data-css-lneilx] svg g{fill:#fff;}@media only screen and (max-width: 768px){.css-lneilx,[data-css-lneilx]{margin-top:0;}}@media only screen and (max-width: 480px){.css-lneilx,[data-css-lneilx]{margin-top:0;}}.css-de1dx1,[data-css-de1dx1]{color:#fff;}.css-de1dx1 a,[data-css-de1dx1] a, .css-de1dx1 span, [data-css-de1dx1] span{display:inline-block;margin-right:8px;font-size:13px;letter-spacing:0.24px;}.css-de1dx1 a:last-child,[data-css-de1dx1] a:last-child{margin-right:0;}@media only screen and (max-width: 768px){.css-de1dx1,[data-css-de1dx1]{line-height:1.5;margin-top:14px;margin-bottom:11px;}}.css-1h53588,[data-css-1h53588]{margin:18px 0;}@media only screen and (max-width: 992px){.css-1h53588,[data-css-1h53588]{text-align:center;}}@media only screen and (max-width: 480px){.css-1h53588,[data-css-1h53588]{text-align:center;}}.css-12k57td,[data-css-12k57td]{font-family:Cerebri Sans Pro;margin-top:0;font-style:normal;font-weight:400;font-size:14px;line-height:25px;letter-spacing:0.375px;color:#fff;}.css-j1o656,[data-css-j1o656]{width:53px;height:53px;}.css-zr18wh,[data-css-zr18wh]{color:#c2c2c2;font-size:10px;margin-top:5px;}.css-zr18wh div,[data-css-zr18wh] div{white-space:nowrap;}@media only screen and (max-width: 768px){.css-zr18wh,[data-css-zr18wh]{font-size:13px;line-height:1.5;text-align:center;}}</style> <div id="Footer-react-component-b887cc69-1029-4251-be72-f428c4a31686" data-ssr="true" ><footer class="css-ts0y2j"><div class="css-cs546h"><div class="css-1fco1ts"><div class="css-11a2nsi"><div class="css-1npm75a"><h3 class="css-1gn11bn">Tools &amp; Services</h3><a href="/stackups/trending" title="Compare Tools">Compare Tools</a><a href="/search" title="Search Tools &amp; Services">Search</a><a href="/alternatives" title="Browse Tools &amp; Services">Browse Tool Alternatives</a><a href="/categories" title="Technology Tools &amp; Services">Browse Tool Categories</a><a href="/submit" title="Submit a Tool">Submit A Tool</a><a href="/admin/approval-tool" title="Approve Tools">Approve Tools</a></div></div><div class="css-11a2nsi"><div class="css-1npm75a"><h3 class="css-1gn11bn">Company</h3><a href="/featured-posts" title="Featured Posts">Blog</a><a href="/api" title="API">API</a><a href="/jobs" title="Jobs">Job Search</a><a href="/careers" title="Careers at StackShare" class="css-1y302zr">Careers</a><a href="/stackshare" title="Our Stack">Our Stack</a><a href="/vendors" title="Advertise With Us">Advertise With Us</a><a href="mailto:team@stackshare.io" title="Contact Us">Contact Us</a></div></div><div class="css-11a2nsi"><div class="css-1npm75a"><h3 class="css-1gn11bn">Follow Us</h3><ul class="css-11gxadc"><li><a href="https://twitter.com/stackshareio" target="_blank" rel="noreferrer noopener nofollow" class="css-1iqd2ec"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="#FFF" fill-rule="evenodd" d="M3.6 0h16.8A3.6 3.6 0 0 1 24 3.6v16.8a3.6 3.6 0 0 1-3.6 3.6H3.6A3.6 3.6 0 0 1 0 20.4V3.6A3.6 3.6 0 0 1 3.6 0zm14.29 9.964c.548-.389 1.005-.891 1.393-1.44a6.285 6.285 0 0 1-1.621.435c.594-.343 1.005-.891 1.21-1.553a5.867 5.867 0 0 1-1.758.685A2.759 2.759 0 0 0 15.08 7.2a2.788 2.788 0 0 0-2.787 2.81c0 .205.023.433.069.639A7.976 7.976 0 0 1 6.56 7.702a3.037 3.037 0 0 0-.365 1.417c0 .982.48 1.827 1.233 2.33-.456 0-.89-.138-1.256-.343v.022c0 1.37.96 2.49 2.238 2.764-.228.069-.48.092-.73.092-.183 0-.366-.023-.526-.046.343 1.119 1.394 1.873 2.604 1.896-.96.753-2.147 1.279-3.472 1.279a6 6 0 0 1-.662-.046c1.233.8 2.718 1.233 4.294 1.233 5.162 0 7.971-4.27 7.971-7.97v-.366z"></path></svg></a></li><li><a href="https://facebook.com/stackshareio" target="_blank" rel="noreferrer noopener nofollow" class="css-1iqd2ec"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="#FFF" fill-rule="evenodd" d="M16.478 24v-8h2.896l.201-3.069h-3.097v-2.237c0-.86.172-1.405 1.262-1.405h1.692l.143-2.925s-.86-.172-2.351-.172c-3.04 0-4.36 1.835-4.36 3.9v2.81H10.8V16h2.065v8H3.6A3.6 3.6 0 0 1 0 20.4V3.6A3.6 3.6 0 0 1 3.6 0h16.8A3.6 3.6 0 0 1 24 3.6v16.8a3.6 3.6 0 0 1-3.6 3.6h-3.922z"></path></svg></a></li><li><a href="https://www.linkedin.com/company/stackshare" target="_blank" rel="noreferrer noopener nofollow" class="css-1iqd2ec"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="#FFF" fill-rule="evenodd" d="M3.6 0h16.8A3.6 3.6 0 0 1 24 3.6v16.8a3.6 3.6 0 0 1-3.6 3.6H3.6A3.6 3.6 0 0 1 0 20.4V3.6A3.6 3.6 0 0 1 3.6 0zm5.521 17.16V9.378H6.374v7.782h2.747zM7.748 8.43c1.119 0 1.83-.807 1.83-1.815C9.554 5.578 8.868 4.8 7.749 4.8c-1.094 0-1.831.778-1.831 1.815 0 1.008.712 1.815 1.805 1.815h.026zm11.444 8.73v-4.12c0-2.518-1.246-4.12-3.205-4.12-1.119 0-1.932.661-2.288 1.653l-.102-1.195h-2.721c.025.305.076 1.83.076 1.83v5.952h2.747v-4.12c0-1.12.508-1.831 1.347-1.831.84 0 1.4.432 1.4 1.83v4.12h2.746z"></path></svg></a></li><li><a href="https://angel.co/stackshare" target="_blank" rel="noreferrer noopener nofollow" class="css-1iqd2ec"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="#FFF" fill-rule="evenodd" d="M3.6 0h16.8A3.6 3.6 0 0 1 24 3.6v16.8a3.6 3.6 0 0 1-3.6 3.6H3.6A3.6 3.6 0 0 1 0 20.4V3.6A3.6 3.6 0 0 1 3.6 0zm4.684 14.42c.365.493.708.877 1.029 1.153.322.276.579.413.769.413.14 0 .268-.064.385-.194a.624.624 0 0 0 .173-.42c0-.16-.114-.528-.341-1.11-.227-.58-.512-1.15-.849-1.71-.249-.418-.492-.733-.732-.947-.24-.214-.466-.319-.68-.319-.174 0-.366.111-.577.33-.212.223-.317.43-.317.622 0 .2.102.501.309.903.207.4.484.827.83 1.28zm6.062-4.06a89.757 89.757 0 0 0 1.296-3.767c.31-.99.465-1.598.465-1.824 0-.242-.053-.43-.155-.563h-.001a.51.51 0 0 0-.429-.2c-.23 0-.468.194-.707.582-.24.389-.505 1.014-.793 1.875l-1.238 3.622 1.562.275zm-4.45-.445a.982.982 0 0 1 .371-.058c.05 0 .149.005.298.013.147.01.392.03.73.063L9.958 6.022c-.347-.993-.615-1.644-.806-1.949-.19-.303-.397-.456-.619-.456a.513.513 0 0 0-.422.2c-.107.133-.16.313-.16.54 0 .384.144 1.052.433 2.004.29.953.724 2.202 1.303 3.749a.41.41 0 0 1 .21-.195zm6.22 2.129a1.006 1.006 0 0 0-.245-.293c-.338-.285-.998-.54-1.979-.765a13.608 13.608 0 0 0-3.068-.338c-.296 0-.508.05-.632.15-.124.1-.186.272-.186.516 0 .567.314.98.943 1.233.627.255 1.643.382 3.049.382h.508c.116 0 .21.044.279.133.07.088.118.219.142.394-.14.134-.43.287-.866.456-.438.172-.774.341-1.005.508a4.53 4.53 0 0 0-1.196 1.31 3.99 3.99 0 0 0-.198.374c-.04.09-.07.176-.102.263-.012.034-.029.067-.04.1-.018.063-.03.125-.044.188-.013.056-.032.11-.04.166-.006.039-.006.076-.01.114-.008.076-.019.154-.019.228v.001c0 .277.063.609.192.997.128.388.192.629.192.72v.086l-.025.112c-.364-.023-.65-.239-.863-.644-.21-.406-.315-.947-.315-1.622v-.112a.719.719 0 0 1-.192.125.553.553 0 0 1-.205.037c-.074 0-.144-.006-.212-.019a2.132 2.132 0 0 1-.222-.058v.001c.024.094.043.182.056.27a1.05 1.05 0 0 1-.34 1.003 1.22 1.22 0 0 1-.856.331c-.52 0-1.05-.256-1.587-.77-.537-.515-.806-1.017-.806-1.51 0-.091.01-.172.032-.243a.406.406 0 0 1 .104-.182c.115.142.278.35.483.627.545.76 1.05 1.14 1.512 1.14.157 0 .297-.05.422-.149.123-.1.185-.206.185-.313v-.001c0-.127-.083-.334-.248-.629a8.366 8.366 0 0 0-.681-.99c-.33-.425-.606-.736-.826-.933-.217-.196-.394-.295-.525-.295-.29 0-.557.157-.8.47a1.756 1.756 0 0 0-.366 1.11c0 .344.086.725.254 1.147.168.422.416.846.738 1.271a4.937 4.937 0 0 0 1.816 1.524c.723.355 1.522.532 2.4.532 1.611 0 2.96-.607 4.046-1.823 1.088-1.216 1.632-2.739 1.632-4.568 0-.56-.04-1.005-.124-1.337a1.67 1.67 0 0 0-.162-.425zm-4.733 2.915a6.14 6.14 0 0 1 .626-.682c.218-.206.449-.386.689-.545a8.167 8.167 0 0 1-1.01-.113 5.067 5.067 0 0 1-.912-.252c.133.268.25.535.354.802.103.268.188.532.253.79z"></path></svg></a></li></ul></div></div><div class="css-11a2nsi"><div class="css-1npm75a"><a href="/" class="css-lneilx"><svg width="203" height="31" viewBox="0 0 812 124" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="1.414"><g id="Layer1" fill-rule="nonzero"><path d="M221.086 85.794c0 7.342-2.55 12.933-7.651 16.775-5.101 3.842-12.731 5.762-22.889 5.762-5.208 0-9.647-.352-13.318-1.056-3.671-.704-7.107-1.739-10.308-3.105V88.035c3.628 1.707 7.715 3.137 12.261 4.29 4.546 1.152 8.547 1.728 12.005 1.728 7.085 0 10.628-2.048 10.628-6.146 0-1.537-.469-2.785-1.408-3.746-.939-.96-2.561-2.048-4.866-3.265-2.305-1.216-5.379-2.636-9.22-4.258-5.506-2.305-9.551-4.439-12.133-6.402-2.583-1.964-4.461-4.215-5.635-6.755-1.173-2.54-1.76-5.666-1.76-9.38 0-6.36 2.465-11.279 7.395-14.758 4.93-3.479 11.919-5.218 20.968-5.218 8.623 0 17.01 1.878 25.163 5.634l-5.891 14.086c-3.585-1.537-6.936-2.796-10.052-3.778a31.589 31.589 0 0 0-9.54-1.472c-5.762 0-8.643 1.558-8.643 4.674 0 1.75.928 3.265 2.785 4.546 1.857 1.28 5.922 3.18 12.197 5.698 5.591 2.262 9.689 4.375 12.293 6.339 2.604 1.963 4.524 4.225 5.762 6.786 1.238 2.561 1.857 5.613 1.857 9.156zM259.924 92.773c3.415 0 7.513-.747 12.293-2.241v14.534c-4.866 2.177-10.841 3.265-17.927 3.265-7.811 0-13.499-1.974-17.063-5.922-3.564-3.948-5.346-9.871-5.346-17.767V50.131h-9.348v-8.259l10.756-6.531 5.635-15.11h12.485v15.238h20.04v14.662h-20.04v34.511c0 2.774.779 4.823 2.337 6.146 1.558 1.323 3.617 1.985 6.178 1.985zM325.59 107.051l-3.778-9.732h-.512c-3.287 4.14-6.669 7.011-10.148 8.611-3.479 1.601-8.014 2.401-13.606 2.401-6.872 0-12.282-1.963-16.23-5.89-3.949-3.927-5.923-9.519-5.923-16.775 0-7.598 2.657-13.2 7.971-16.807 5.315-3.607 13.329-5.602 24.042-5.986l12.421-.384v-3.138c0-7.256-3.713-10.884-11.14-10.884-5.72 0-12.443 1.728-20.168 5.186l-6.467-13.19c8.238-4.311 17.372-6.466 27.403-6.466 9.604 0 16.967 2.091 22.089 6.274s7.683 10.543 7.683 19.08v47.7H325.59zm-5.763-33.166l-7.555.256c-5.677.171-9.902 1.195-12.677 3.074-2.774 1.878-4.162 4.738-4.162 8.579 0 5.506 3.159 8.259 9.476 8.259 4.525 0 8.142-1.301 10.853-3.905 2.71-2.604 4.065-6.061 4.065-10.372v-5.891zM381.843 108.331c-22.281 0-33.421-12.229-33.421-36.687 0-12.165 3.03-21.459 9.091-27.883 6.061-6.424 14.748-9.636 26.059-9.636 8.281 0 15.708 1.622 22.281 4.866l-5.762 15.11c-3.074-1.238-5.933-2.251-8.58-3.041-2.646-.79-5.293-1.185-7.939-1.185-10.159 0-15.238 7.214-15.238 21.641 0 14.001 5.079 21.001 15.238 21.001 3.756 0 7.235-.502 10.436-1.505 3.202-1.003 6.403-2.571 9.604-4.706v16.711c-3.158 2.006-6.349 3.394-9.572 4.162-3.222.768-7.288 1.152-12.197 1.152zM432.398 68.123l8.516-10.885 20.04-21.769h22.025l-28.428 31.053 30.157 40.529h-22.537l-20.617-29.004-8.387 6.723v22.281h-19.528V7.426h19.528V51.86l-1.025 16.263h.256z"></path><path d="M538.336 85.794c0 7.342-2.55 12.933-7.651 16.775-5.101 3.842-12.73 5.762-22.889 5.762-5.208 0-9.647-.352-13.318-1.056-3.671-.704-7.107-1.739-10.308-3.105V88.035c3.628 1.707 7.715 3.137 12.261 4.29 4.546 1.152 8.548 1.728 12.005 1.728 7.086 0 10.628-2.048 10.628-6.146 0-1.537-.469-2.785-1.408-3.746-.939-.96-2.561-2.048-4.866-3.265-2.305-1.216-5.378-2.636-9.22-4.258-5.506-2.305-9.551-4.439-12.133-6.402-2.582-1.964-4.46-4.215-5.634-6.755-1.174-2.54-1.761-5.666-1.761-9.38 0-6.36 2.465-11.279 7.395-14.758 4.93-3.479 11.92-5.218 20.969-5.218 8.622 0 17.009 1.878 25.162 5.634l-5.89 14.086c-3.586-1.537-6.937-2.796-10.053-3.778a31.589 31.589 0 0 0-9.54-1.472c-5.762 0-8.643 1.558-8.643 4.674 0 1.75.928 3.265 2.785 4.546 1.857 1.28 5.923 3.18 12.197 5.698 5.592 2.262 9.689 4.375 12.293 6.339 2.604 1.963 4.525 4.225 5.763 6.786 1.237 2.561 1.856 5.613 1.856 9.156zM613.093 107.051h-19.528V65.242c0-10.33-3.841-15.495-11.524-15.495-5.464 0-9.412 1.857-11.845 5.571-2.433 3.713-3.65 9.732-3.65 18.055v33.678h-19.528V7.426h19.528v20.296c0 1.58-.149 5.293-.448 11.141l-.448 5.762h1.024c4.354-7 11.269-10.5 20.745-10.5 8.409 0 14.79 2.262 19.144 6.787 4.353 4.524 6.53 11.012 6.53 19.464v46.675zM672.1 107.051l-3.778-9.732h-.512c-3.286 4.14-6.669 7.011-10.148 8.611-3.479 1.601-8.014 2.401-13.606 2.401-6.872 0-12.282-1.963-16.23-5.89-3.948-3.927-5.923-9.519-5.923-16.775 0-7.598 2.657-13.2 7.972-16.807 5.314-3.607 13.328-5.602 24.042-5.986l12.421-.384v-3.138c0-7.256-3.714-10.884-11.141-10.884-5.72 0-12.442 1.728-20.168 5.186l-6.467-13.19c8.238-4.311 17.373-6.466 27.403-6.466 9.604 0 16.967 2.091 22.089 6.274 5.123 4.183 7.684 10.543 7.684 19.08v47.7H672.1zm-5.762-33.166l-7.555.256c-5.677.171-9.903 1.195-12.678 3.074-2.774 1.878-4.161 4.738-4.161 8.579 0 5.506 3.158 8.259 9.475 8.259 4.525 0 8.142-1.301 10.853-3.905 2.71-2.604 4.066-6.061 4.066-10.372v-5.891zM739.238 34.125c2.646 0 4.845.192 6.595.576l-1.473 18.312c-1.579-.427-3.5-.641-5.762-.641-6.232 0-11.088 1.601-14.566 4.802-3.479 3.202-5.218 7.684-5.218 13.446v36.431h-19.528V35.469h14.79l2.881 12.037h.96c2.22-4.012 5.218-7.245 8.996-9.7 3.777-2.454 7.886-3.681 12.325-3.681zM779.293 48.019c-4.141 0-7.385 1.312-9.732 3.937-2.348 2.625-3.692 6.349-4.034 11.173h27.403c-.085-4.824-1.344-8.548-3.777-11.173s-5.72-3.937-9.86-3.937zm2.753 60.312c-11.525 0-20.531-3.18-27.019-9.54-6.488-6.36-9.732-15.366-9.732-27.019 0-11.994 2.998-21.267 8.996-27.819 5.997-6.552 14.288-9.828 24.874-9.828 10.116 0 17.991 2.881 23.625 8.643 5.635 5.763 8.452 13.723 8.452 23.882v9.476h-46.163c.213 5.549 1.857 9.882 4.93 12.997 3.073 3.116 7.384 4.674 12.933 4.674 4.311 0 8.388-.448 12.229-1.344 3.842-.897 7.854-2.326 12.037-4.29v15.11c-3.414 1.708-7.064 2.978-10.948 3.81-3.885.832-8.622 1.248-14.214 1.248z"></path></g><g fill="#008ff9"><path d="M101.98 83c-3.9 0-7.157 2.792-7.886 6.482-.212 1.564 0 3.123 0 3.123.73 3.687 3.986 6.477 7.885 6.477 4.434 0 8.042-3.605 8.042-8.04 0-4.434-3.608-8.042-8.042-8.042M32.041 54C27.607 54 24 57.606 24 62.041c0 4.433 3.607 8.041 8.041 8.041 4.435 0 8.042-3.608 8.042-8.041 0-4.435-3.607-8.041-8.042-8.041m69.924-12.918c4.435 0 8.042-3.608 8.042-8.041 0-4.435-3.607-8.041-8.042-8.041-3.898 0-7.155 2.791-7.885 6.48v.049s-.18 1.654 0 3.073c.73 3.689 3.987 6.48 7.885 6.48"></path><path d="M101.965 105.961c-6.965 0-12.841-4.655-14.692-11.022H73.376l-.076.043-16.575-28.517H46.592c-1.852 6.367-7.727 11.023-14.694 11.023-8.451 0-15.303-6.852-15.303-15.303 0-8.452 6.852-15.305 15.303-15.305 6.967 0 12.842 4.656 14.694 11.025h9.905l.128-.217L73.3 28.999l.141.083h13.768c1.852-6.369 7.727-11.025 14.692-11.025 8.453 0 15.305 6.853 15.305 15.305 0 8.451-6.852 15.304-15.305 15.304-6.965 0-12.84-4.656-14.692-11.025h-9.03l-14.14 24.326-.006.023.005.022L78.2 86.378h9.073c1.851-6.369 7.727-11.026 14.692-11.026 8.453 0 15.305 6.853 15.305 15.305s-6.852 15.304-15.305 15.304zM124.996 0H8.004C3.584 0 0 3.561 0 7.953v108.094C0 120.44 3.584 124 8.004 124h116.992c4.421 0 8.004-3.56 8.004-7.953V7.953C133 3.561 129.417 0 124.996 0z"></path></g></svg></a><div class="css-de1dx1"><a href="/terms">Terms</a><span>·</span><a href="/privacy">Privacy</a></div><div class="css-1h53588"><h3 class="css-12k57td">SOC 2 Type 2 Certified</h3><a href="http://www.aicpa.org/soc4so" rel="nofollow noreferrer noopener" target="_blank" title="SOC2 badge"><img src="https://img.stackshare.io/fe/SOC2.png" class="css-j1o656"/></a></div><div class="css-zr18wh"><div>Copyright © <!-- -->2022<!-- --> StackShare, Inc. </div><div>All rights reserved.</div></div><div class="css-de1dx1"><a href="/html-sitemaps/stackups/main.html">Sitemap</a></div></div></div></div></div></footer></div> <script> renderComponent('Footer','Footer-react-component-b887cc69-1029-4251-be72-f428c4a31686','Footer-apollo-state-b887cc69-1029-4251-be72-f428c4a31686','Footer-glamor-b887cc69-1029-4251-be72-f428c4a31686', 'apollo','{"isAdmin":null}'); </script>