On the third floor of a pre-war building in Manhattan’s Chelsea neighborhood, you might not expect to stumble upon a fleet of hundreds of handwriting robots. However, in the offices of Bond, that’s exactly what you’ll find. Bond began in 2013 as a gifting company, adorning each of their gifts with a handwritten note. It soon became clear that the note (and not the gift) would be the kickstart to Bond’s success.
Bond’s notes are generated with proprietary machine learning algorithms that mimic the way we write letters. The team examines the way different letters of the alphabet relate to each other and recreate that effect using NodeJS and their purpose-built robotic fleet. It’s one of the few companies where you’ll find calligraphers sitting alongside software engineers.
Selecting MongoDB over MySQL
While novelty may be part of the reason Bond’s notes catch the attention of millions of senders and recipients across the world, the company’s mission is more elegant: to equip anyone with the technology to be more thoughtful to the important people in their lives.
This mission resonated with thousands of new Bond customers, who quickly pushed the limits of Bond’s existing technical infrastructure. Originally built on MySQL running in Amazon Relational Database Service (RDS), the platform through which customers create and order notes was seeing upwards of 1,000 read operations per second. This read workload came at the expense of write consistency. The business was scaling exponentially but their database wasn’t keeping pace.
Before long, the engineering team was spending more cycles troubleshooting issues with the datastore rather than building out the core product offering.
Bond’s CTO began evaluating other options with a particular focus on NoSQL databases for their horizontal scalability. However, the team quickly realized that most NoSQL databases weren’t ready for primetime—they either lacked the required querying capabilities or were too infrastructure-intensive for their rapidly-growing requirements.
MongoDB was ultimately selected for its robust ecosystem, expressive query language, and scalability.
Migrating to MongoDB
Initially, Bond chose to continue to route write operations to MySQL and pass them to a hosted MongoDB instance where the data could be read at a much higher frequency. However, the team has since migrated completely to MongoDB as their database of record.
Ensuring a more stable IOPS load enabled the platform to scale, and therefore allowed Bond to process more orders. In the 6 months after migrating to MongoDB, Bond fulfilled twice as many orders than in the previous 2 years on MySQL.
Throughout the process, the team also transitioned from working with PHP to building predominantly in Node with Python for machine learning.
Having used a managed service on AWS for MySQL, Bond's team was eager to hand over the day-to-day management of the database so they turned to Compose.io, a third party MongoDB service provider. While offloading their MongoDB management to a Compose-hosted deployment on AWS enabled the team to return focus to the consumer-facing portions of their app, it became apparent that the lack of encryption and features in the most recent releases of MongoDB were becoming a security and operational hurdle.
Finding MongoDB Atlas
Prompted by their need for end-to-end encryption and the upcoming support for the Decimal 128 data type in MongoDB 3.4, Bond began migrating their data from Compose to MongoDB Atlas shortly after its debut in the summer of 2016. MongoDB Atlas exposed all of the latest functionality of the underlying database, allowing Bond’s technology to not only keep pace with their rapidly-growing business, but to also accelerate to the point where innovation is now driving their business growth.
The team has since built a machine data analytics platform to understand and optimize the performance of their robotic fleet, allowing them to fulfill more orders with the same proprietary infrastructure.
Using the Connector for Apache Spark, Bond is also using machine learning to extract usage data from MongoDB to anticipate the needs of their many types of customers.
To see Bond in action, watch our video with Chief Product Officer, Sam Broe: