SlideShare a Scribd company logo
BYOMQ: Why We [re]Built
IronMQ
Reed Allman
@rdallman10
Making [another!] Case for NIH
Reed Allman
@rdallman10
Beating A Dead Horse [again!]
Reed Allman
@rdallman10
There
Are
Too
Many
Options
Me Showing .gifs for 30 Minutes
Reed Allman
@rdallman10
DataEngConf SF16 - BYOMQ: Why We [re]Built IronMQ
NIH: Not Invented Here Syndrome
A quick refresher:
...the tendency towards reinventing the wheel (reimplementing something that is
already available) based on the belief that in-house developments are inherently better
suited, more secure, more controlled, quicker to develop, and incur lower overall cost
(including maintenance cost) than using existing implementations.
Proof by Contradiction
Throw this at ${USE_CASE}
Out of the Box
● Massive scale on commodity hardware in hours of easy set up
● Battle tested, many bugs worked out, lots of docs, tools, guides, etc.
● Operate JVM, hard not to code on JVM
● Any and all problems associated with any of the boxes or how they fit together
● And these are open source! Many boxes are not and suffer vendor lock-in
● At mercy of those who understand it / time for fixing bugs, making improvements
Could you do better?
Different people come from different backgrounds and, based on that, find different
tools useful. Ultimately you need to use the tools that let you get your job done most
effectively, however that is defined in your particular case.
- Russ Cox
Go
If it's a core business function -- do it yourself, no matter what.
- Joel Spolsky
Excel
I felt that my team, which was supposed to be made up of distributed systems
engineers, was really acting more as distributed system plumbers.
- Jay Kreps
Kafka
DataEngConf SF16 - BYOMQ: Why We [re]Built IronMQ
Pain meow or later?
To the Queues!
Our Requirements:
● Easy to run (single binary ideal) in any environment & not hosted
● Persisted, consistent and performant
● Highly available -- fast recovery, no data loss, minimal downtime
● Horizontally scalable
● Timing based
● FIFO
● >= 1 time delivery
● Multi-Tenant capable+
● Preferably built in Go, HTTP interface
...Scalable, Low-Latency, Persistent MQ for Job Processing
DataEngConf SF16 - BYOMQ: Why We [re]Built IronMQ
DataEngConf SF16 - BYOMQ: Why We [re]Built IronMQ
What, briefly
● Single Go binary per server
● RocksDB embedded to store all metadata and messages
● Built the distributed database - viewstamped replication, multi-master, gossip
membership - scales across queues across nodes, auto-balanced
● Linear scaling factor of .98
● Recovery time < 300ms
● Simple HTTP interface, stupidly simple clients
● Enqueue / Dequeue avg latency < 10ms for < 4KB messages
DataEngConf SF16 - BYOMQ: Why We [re]Built IronMQ
boom
Results
Full understanding and control makes for quick fixes, easy
to add features
Don’t have to build a daemon to add features, can bake
everything in
Takes a long time to get to stable
Make all your own tools, plumb any data you want out
Build exactly what you need, optimized for what you are
doing
Use the language(s) you know and love
My attempt to say profound shit:
Be a builder, not a plumber.
Questions?

More Related Content

PDF
DatEngConf SF16 - Apache Kudu: Fast Analytics on Fast Data
Hakka Labs
 
PPTX
RedisConf17 - Redis in High Traffic Adtech Stack
Redis Labs
 
PDF
Deploying Kafka at Dropbox, Mark Smith, Sean Fellows
confluent
 
PDF
HIgh Performance Redis- Tague Griffith, GoPro
Redis Labs
 
PDF
Scaling Redis Cluster Deployments for Genome Analysis (featuring LSU) - Terry...
Redis Labs
 
PDF
Scylla Summit 2022: Operating at Monstrous Scales: Benchmarking Petabyte Work...
ScyllaDB
 
PDF
Low latency stream processing with jet
StreamNative
 
PDF
How netflix manages petabyte scale apache cassandra in the cloud
Vinay Kumar Chella
 
DatEngConf SF16 - Apache Kudu: Fast Analytics on Fast Data
Hakka Labs
 
RedisConf17 - Redis in High Traffic Adtech Stack
Redis Labs
 
Deploying Kafka at Dropbox, Mark Smith, Sean Fellows
confluent
 
HIgh Performance Redis- Tague Griffith, GoPro
Redis Labs
 
Scaling Redis Cluster Deployments for Genome Analysis (featuring LSU) - Terry...
Redis Labs
 
Scylla Summit 2022: Operating at Monstrous Scales: Benchmarking Petabyte Work...
ScyllaDB
 
Low latency stream processing with jet
StreamNative
 
How netflix manages petabyte scale apache cassandra in the cloud
Vinay Kumar Chella
 

What's hot (20)

PPTX
RedisConf17- Using Redis at scale @ Twitter
Redis Labs
 
PDF
Scylla Summit 2022: Building Zeotap's Privacy Compliant Customer Data Platfor...
ScyllaDB
 
PDF
Counting image views using redis cluster
Redis Labs
 
PDF
25 snowflake
剑飞 陈
 
PDF
hbaseconasia2017: Building online HBase cluster of Zhihu based on Kubernetes
HBaseCon
 
PPTX
Scylla Summit 2018: Consensus in Eventually Consistent Databases
ScyllaDB
 
PDF
The Data Mullet: From all SQL to No SQL back to Some SQL
Datadog
 
PPTX
Scylla Summit 2018: Scylla Feature Talks - Scylla Streaming and Repair Updates
ScyllaDB
 
PPTX
Strata+Hadoop 2017 San Jose: Lessons from a year of supporting Apache Kafka
confluent
 
PDF
Webinar: Diagnosing Apache Cassandra Problems in Production
DataStax Academy
 
PDF
RedisConf18 - Redis at LINE - 25 Billion Messages Per Day
Redis Labs
 
PPTX
Connecting kafka message systems with scylla
Maheedhar Gunturu
 
PDF
Looking towards an official cassandra sidecar netflix
Vinay Kumar Chella
 
PPTX
RedisConf17 - Home Depot - Turbo charging existing applications with Redis
Redis Labs
 
PDF
Building Scalable, Real Time Applications for Financial Services with DataStax
DataStax
 
PPTX
Arc305 how netflix leverages multiple regions to increase availability an i...
Ruslan Meshenberg
 
PDF
Scylla Summit 2016: Compose on Containing the Database
ScyllaDB
 
PDF
Honest performance testing with NDBench
Vinay Kumar Chella
 
PDF
HBaseCon2017 Highly-Available HBase
HBaseCon
 
PDF
Kafka on ZFS: Better Living Through Filesystems
confluent
 
RedisConf17- Using Redis at scale @ Twitter
Redis Labs
 
Scylla Summit 2022: Building Zeotap's Privacy Compliant Customer Data Platfor...
ScyllaDB
 
Counting image views using redis cluster
Redis Labs
 
25 snowflake
剑飞 陈
 
hbaseconasia2017: Building online HBase cluster of Zhihu based on Kubernetes
HBaseCon
 
Scylla Summit 2018: Consensus in Eventually Consistent Databases
ScyllaDB
 
The Data Mullet: From all SQL to No SQL back to Some SQL
Datadog
 
Scylla Summit 2018: Scylla Feature Talks - Scylla Streaming and Repair Updates
ScyllaDB
 
Strata+Hadoop 2017 San Jose: Lessons from a year of supporting Apache Kafka
confluent
 
Webinar: Diagnosing Apache Cassandra Problems in Production
DataStax Academy
 
RedisConf18 - Redis at LINE - 25 Billion Messages Per Day
Redis Labs
 
Connecting kafka message systems with scylla
Maheedhar Gunturu
 
Looking towards an official cassandra sidecar netflix
Vinay Kumar Chella
 
RedisConf17 - Home Depot - Turbo charging existing applications with Redis
Redis Labs
 
Building Scalable, Real Time Applications for Financial Services with DataStax
DataStax
 
Arc305 how netflix leverages multiple regions to increase availability an i...
Ruslan Meshenberg
 
Scylla Summit 2016: Compose on Containing the Database
ScyllaDB
 
Honest performance testing with NDBench
Vinay Kumar Chella
 
HBaseCon2017 Highly-Available HBase
HBaseCon
 
Kafka on ZFS: Better Living Through Filesystems
confluent
 

Viewers also liked (17)

PDF
DataEngConf SF16 - Scalable and Reliable Logging at Pinterest
Hakka Labs
 
PDF
DataEngConf SF16 - Data Asserts: Defensive Data Science
Hakka Labs
 
PDF
DataEngConf SF16 - Methods for Content Relevance at LinkedIn
Hakka Labs
 
PDF
DataEngConf SF16 - Beginning with Ourselves
Hakka Labs
 
PPTX
DataEngConf SF16 - High cardinality time series search
Hakka Labs
 
PDF
DataEngConf SF16 - Deriving Meaning from Wearable Sensor Data
Hakka Labs
 
PDF
DataEngConf SF16 - Routing Billions of Analytics Events with High Deliverability
Hakka Labs
 
PDF
DataEngConf SF16 - Three lessons learned from building a production machine l...
Hakka Labs
 
PDF
DataEngConf SF16 - Bridging the gap between data science and data engineering
Hakka Labs
 
PDF
DataEngConf SF16 - Collecting and Moving Data at Scale
Hakka Labs
 
PDF
DataEngConf SF16 - Running simulations at scale
Hakka Labs
 
PDF
DataEngConf SF16 - Tales from the other side - What a hiring manager wish you...
Hakka Labs
 
PDF
DataEngConf SF16 - Unifying Real Time and Historical Analytics with the Lambd...
Hakka Labs
 
PDF
DataEngConf SF16 - Recommendations at Instacart
Hakka Labs
 
PDF
DataEngConf SF16 - Entity Resolution in Data Pipelines Using Spark
Hakka Labs
 
PDF
Always Valid Inference (Ramesh Johari, Stanford)
Hakka Labs
 
PDF
DataEngConf SF16 - Multi-temporal Data Structures
Hakka Labs
 
DataEngConf SF16 - Scalable and Reliable Logging at Pinterest
Hakka Labs
 
DataEngConf SF16 - Data Asserts: Defensive Data Science
Hakka Labs
 
DataEngConf SF16 - Methods for Content Relevance at LinkedIn
Hakka Labs
 
DataEngConf SF16 - Beginning with Ourselves
Hakka Labs
 
DataEngConf SF16 - High cardinality time series search
Hakka Labs
 
DataEngConf SF16 - Deriving Meaning from Wearable Sensor Data
Hakka Labs
 
DataEngConf SF16 - Routing Billions of Analytics Events with High Deliverability
Hakka Labs
 
DataEngConf SF16 - Three lessons learned from building a production machine l...
Hakka Labs
 
DataEngConf SF16 - Bridging the gap between data science and data engineering
Hakka Labs
 
DataEngConf SF16 - Collecting and Moving Data at Scale
Hakka Labs
 
DataEngConf SF16 - Running simulations at scale
Hakka Labs
 
DataEngConf SF16 - Tales from the other side - What a hiring manager wish you...
Hakka Labs
 
DataEngConf SF16 - Unifying Real Time and Historical Analytics with the Lambd...
Hakka Labs
 
DataEngConf SF16 - Recommendations at Instacart
Hakka Labs
 
DataEngConf SF16 - Entity Resolution in Data Pipelines Using Spark
Hakka Labs
 
Always Valid Inference (Ramesh Johari, Stanford)
Hakka Labs
 
DataEngConf SF16 - Multi-temporal Data Structures
Hakka Labs
 

Similar to DataEngConf SF16 - BYOMQ: Why We [re]Built IronMQ (20)

PPTX
Design and implementation patterns for reviving relational monoliths
Thomas Gamble
 
PDF
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
Fwdays
 
KEY
Cooking a rabbit pie
Tomas Doran
 
PDF
Voldemort Nosql
elliando dias
 
PDF
Introduction To Apache Mesos
Timothy St. Clair
 
PDF
Jeremy Edberg (MinOps ) - How to build a solid infrastructure for a startup t...
Startupfest
 
PPT
Succeding with the Apache SOA stack
Johan Edstrom
 
PPT
Farms, Fabrics and Clouds
Steve Loughran
 
PDF
Aug 2012 HUG: Hug BigTop
Yahoo Developer Network
 
PDF
0 mq the guide
hik_lhz
 
PDF
Ice dec05-04-wan leung
Chun Ming Au Yeung
 
PDF
PHP At 5000 Requests Per Second: Hootsuite’s Scaling Story
vanphp
 
PPTX
Planning to Fail #phpne13
Dave Gardner
 
PDF
Lessons learned from building Demand Side Platform
bbogacki
 
ODP
The Art of Message Queues - TEKX
Mike Willbanks
 
PDF
Datacenter Computing with Apache Mesos - BigData DC
Paco Nathan
 
PDF
RabbitMQ Cookbook - Introduction for beginners
-
 
PPTX
Mario Cartia - SMACK is the new LAMP! - Codemotion Milan 2017
Codemotion
 
PDF
Serverless Java: JJUG CCC 2019
Shaun Smith
 
PPTX
Prototype4Production Presented at FOSSASIA2015 at Singapore
Dhruv Gohil
 
Design and implementation patterns for reviving relational monoliths
Thomas Gamble
 
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
Fwdays
 
Cooking a rabbit pie
Tomas Doran
 
Voldemort Nosql
elliando dias
 
Introduction To Apache Mesos
Timothy St. Clair
 
Jeremy Edberg (MinOps ) - How to build a solid infrastructure for a startup t...
Startupfest
 
Succeding with the Apache SOA stack
Johan Edstrom
 
Farms, Fabrics and Clouds
Steve Loughran
 
Aug 2012 HUG: Hug BigTop
Yahoo Developer Network
 
0 mq the guide
hik_lhz
 
Ice dec05-04-wan leung
Chun Ming Au Yeung
 
PHP At 5000 Requests Per Second: Hootsuite’s Scaling Story
vanphp
 
Planning to Fail #phpne13
Dave Gardner
 
Lessons learned from building Demand Side Platform
bbogacki
 
The Art of Message Queues - TEKX
Mike Willbanks
 
Datacenter Computing with Apache Mesos - BigData DC
Paco Nathan
 
RabbitMQ Cookbook - Introduction for beginners
-
 
Mario Cartia - SMACK is the new LAMP! - Codemotion Milan 2017
Codemotion
 
Serverless Java: JJUG CCC 2019
Shaun Smith
 
Prototype4Production Presented at FOSSASIA2015 at Singapore
Dhruv Gohil
 

More from Hakka Labs (12)

PDF
DataEngConf SF16 - Spark SQL Workshop
Hakka Labs
 
PDF
DataEngConf: Building a Music Recommender System from Scratch with Spotify Da...
Hakka Labs
 
PDF
DataEngConf: Data Science at the New York Times by Chris Wiggins
Hakka Labs
 
PPTX
DataEngConf: Building the Next New York Times Recommendation Engine
Hakka Labs
 
PDF
DataEngConf: Measuring Impact with Data in a Distributed World at Conde Nast
Hakka Labs
 
PDF
DataEngConf: Feature Extraction: Modern Questions and Challenges at Google
Hakka Labs
 
PPTX
DataEngConf: Talkographics: Using What Viewers Say Online to Measure TV and B...
Hakka Labs
 
PPTX
DataEngConf: The Science of Virality at BuzzFeed
Hakka Labs
 
PPTX
DataEngConf: Uri Laserson (Data Scientist, Cloudera) Scaling up Genomics with...
Hakka Labs
 
PDF
DataEngConf: Parquet at Datadog: Fast, Efficient, Portable Storage for Big Data
Hakka Labs
 
PPTX
DataEngConf: Apache Kafka at Rocana: a scalable, distributed log for machine ...
Hakka Labs
 
PPTX
DataEngConf: Building Satori, a Hadoop toll for Data Extraction at LinkedIn
Hakka Labs
 
DataEngConf SF16 - Spark SQL Workshop
Hakka Labs
 
DataEngConf: Building a Music Recommender System from Scratch with Spotify Da...
Hakka Labs
 
DataEngConf: Data Science at the New York Times by Chris Wiggins
Hakka Labs
 
DataEngConf: Building the Next New York Times Recommendation Engine
Hakka Labs
 
DataEngConf: Measuring Impact with Data in a Distributed World at Conde Nast
Hakka Labs
 
DataEngConf: Feature Extraction: Modern Questions and Challenges at Google
Hakka Labs
 
DataEngConf: Talkographics: Using What Viewers Say Online to Measure TV and B...
Hakka Labs
 
DataEngConf: The Science of Virality at BuzzFeed
Hakka Labs
 
DataEngConf: Uri Laserson (Data Scientist, Cloudera) Scaling up Genomics with...
Hakka Labs
 
DataEngConf: Parquet at Datadog: Fast, Efficient, Portable Storage for Big Data
Hakka Labs
 
DataEngConf: Apache Kafka at Rocana: a scalable, distributed log for machine ...
Hakka Labs
 
DataEngConf: Building Satori, a Hadoop toll for Data Extraction at LinkedIn
Hakka Labs
 

Recently uploaded (20)

PDF
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
PDF
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
PDF
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
PDF
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
PPTX
The Future of AI & Machine Learning.pptx
pritsen4700
 
PDF
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
PDF
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
PDF
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
PDF
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
PPTX
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
PDF
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
PDF
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
PDF
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
PPTX
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
PDF
The Future of Artificial Intelligence (AI)
Mukul
 
PDF
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
PPTX
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
PDF
Doc9.....................................
SofiaCollazos
 
PPTX
Agile Chennai 18-19 July 2025 | Emerging patterns in Agentic AI by Bharani Su...
AgileNetwork
 
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
The Future of AI & Machine Learning.pptx
pritsen4700
 
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
The Future of Artificial Intelligence (AI)
Mukul
 
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
Doc9.....................................
SofiaCollazos
 
Agile Chennai 18-19 July 2025 | Emerging patterns in Agentic AI by Bharani Su...
AgileNetwork
 

DataEngConf SF16 - BYOMQ: Why We [re]Built IronMQ

  • 1. BYOMQ: Why We [re]Built IronMQ Reed Allman @rdallman10
  • 2. Making [another!] Case for NIH Reed Allman @rdallman10
  • 3. Beating A Dead Horse [again!] Reed Allman @rdallman10
  • 5. Are
  • 6. Too
  • 9. Me Showing .gifs for 30 Minutes Reed Allman @rdallman10
  • 11. NIH: Not Invented Here Syndrome A quick refresher: ...the tendency towards reinventing the wheel (reimplementing something that is already available) based on the belief that in-house developments are inherently better suited, more secure, more controlled, quicker to develop, and incur lower overall cost (including maintenance cost) than using existing implementations.
  • 13. Throw this at ${USE_CASE}
  • 14. Out of the Box ● Massive scale on commodity hardware in hours of easy set up ● Battle tested, many bugs worked out, lots of docs, tools, guides, etc. ● Operate JVM, hard not to code on JVM ● Any and all problems associated with any of the boxes or how they fit together ● And these are open source! Many boxes are not and suffer vendor lock-in ● At mercy of those who understand it / time for fixing bugs, making improvements
  • 15. Could you do better?
  • 16. Different people come from different backgrounds and, based on that, find different tools useful. Ultimately you need to use the tools that let you get your job done most effectively, however that is defined in your particular case. - Russ Cox Go
  • 17. If it's a core business function -- do it yourself, no matter what. - Joel Spolsky Excel
  • 18. I felt that my team, which was supposed to be made up of distributed systems engineers, was really acting more as distributed system plumbers. - Jay Kreps Kafka
  • 20. Pain meow or later?
  • 22. Our Requirements: ● Easy to run (single binary ideal) in any environment & not hosted ● Persisted, consistent and performant ● Highly available -- fast recovery, no data loss, minimal downtime ● Horizontally scalable ● Timing based ● FIFO ● >= 1 time delivery ● Multi-Tenant capable+ ● Preferably built in Go, HTTP interface
  • 23. ...Scalable, Low-Latency, Persistent MQ for Job Processing
  • 26. What, briefly ● Single Go binary per server ● RocksDB embedded to store all metadata and messages ● Built the distributed database - viewstamped replication, multi-master, gossip membership - scales across queues across nodes, auto-balanced ● Linear scaling factor of .98 ● Recovery time < 300ms ● Simple HTTP interface, stupidly simple clients ● Enqueue / Dequeue avg latency < 10ms for < 4KB messages
  • 28. boom
  • 30. Full understanding and control makes for quick fixes, easy to add features
  • 31. Don’t have to build a daemon to add features, can bake everything in
  • 32. Takes a long time to get to stable
  • 33. Make all your own tools, plumb any data you want out
  • 34. Build exactly what you need, optimized for what you are doing
  • 35. Use the language(s) you know and love
  • 36. My attempt to say profound shit: Be a builder, not a plumber.