How Open Listings is Using MongoDB Atlas to Make Buying Your Dream Home a Reality
November 2, 2017
This is a guest post by Alex Farrill, Co-Founder and CTO, OpenListings.
At Open Listings, our mission is to make buying a home simple and more affordable.
For many people, buying a home can be a frustrating, slow, and expensive experience. This was the experience my wife and I had when we bought our first home in Brooklyn, NY a few years ago and discovered how antiquated the process seemed. Unlike many other industries, technology just hadn’t made home buying easier—we actually had to use a fax machine.
My co-founders and I looked to the best purchasing experience on the internet: Amazon. You can press a button and get a package as soon as an hour later; and because it's efficient, you get a great price. We knew that there had to be a way to use technology to adapt this process for the real estate market to create the all-in-one homebuying app—one that’s so efficient we could give buyers back 50% of their agent fees. So, that’s when we started Open Listings.
To date, we’ve helped thousands of customers buy over $500 million worth of homes and save over $4 million in unnecessary agent fees.
Because of today’s competitive real estate market, our buyers need speed, reliability, and an individualized experience tailored to their unique needs. MongoDB helps us behind the scenes to provide our customers with the home buying experience they deserve.
Power Behind the Scenes
With over 2.5 million home listings, 300+ home tours a week, and an average of 2 home closings per day on the Open Listings platform, MongoDB has played a big role in our ability to ship what matters most to our buyers.
In the past, I’ve had a lot of experience running MySQL and other relational databases. At my last company, an ad-tech company where I was Chief Data Scientist, we built a real-time bidding platform that handled hundreds of thousands of ad requests per second, and the results of those requests—viewer actions, clicks, etc.—would all go into MongoDB. That translated to tons and tons of writes with upserts.
I’d seen the benefits of using MongoDB to handle native data types like arrays, hashes, and embedded documents. Based on MongoDB’s ability to manage the massive amounts of data we were throwing at it then, I knew it could handle the scale we needed with Open Listings. Now, we rely heavily on MongoDB Atlas, MongoDB’s Database as a Service.
We’re running on AWS, using high memory EC2 instances, giving us more performance and storage. It allows us to keep more indexes in memory and prevent our most common queries from hitting the disk.
For our dataset, we’ve needed to upgrade to larger instance sizes and MongoDB Atlas has made scaling up much simpler. If we were using AWS alone, it wouldn’t be as simple as clicking a button. But now, it’s a process we can do in a few minutes rather than over the course of a few days.
Even more importantly to our buyers, we can do it with no service downtime. We always think first about our customers and their experience. By reducing the upgrade process to minutes instead of days, we’re able to reroute those periods of administrative work into time spent shipping features that will make our platform better.
Expanding faster with Atlas
Going forward, we’re looking to use Atlas to enable microservices for property tour requests on the Open Listings platform. Much like booking a ride through a ridesharing program, we allow buyers to book private home tours by connecting them with an agent close to the property. Since the system doesn’t necessarily need access to every single collection that’s in our database, it makes sense to segment this out using microservices.
That also helps with reliability. By separating our platform out into different services, we can minimize risk for the rest of our application. If we have an outage with our showing requests service, that won't affect our homepage, for example. One failure isn’t going to bring everything else down.
Atlas is also allowing us to expand faster. We just launched Open Listings in Washington state, bringing our entire service online there in a matter of weeks. Part of that process was plugging into the Seattle-area multiple listing service (MLS), which includes over a million properties that have been listed for sale over the years. Normally, we add about 7,000 properties to the system per day —using fully managed MongoDB allowed us to accommodate write workloads an order of magnitude greater over the same time period.
MongoDB Atlas was crucial to making this possible in a short time frame. First, we were able to scale up the database to a larger instance size with a few clicks, instead of the time-consuming process of bringing up new EC2 servers and migrating manually via a rolling upgrade process across our replica set. We didn't have to create a migration plan with an in-house DBA or review our backup strategy. All of that was handled for us in Atlas.
Second, because of MongoDB's flexible data model, we were easily able to accommodate the nuances of this particular MLS's property data without having to go back through all our existing data and painstakingly adjust the schema. Adding additional fields to our property records was as simple as writing it as we processed the new data.
Finally, writing this amount of data is well within the bounds of what MongoDB can handle. WiredTiger's strategy of flushing writes to disk periodically is very performant and is a huge asset for us as we continue to grow.
All in all, we were able to complete the Seattle MLS integration in only two weeks, which allowed us to bring our superior service and 50% commission refund to our next planned state ahead of schedule.
Helping Us Connect the Dots
A few months ago, we joined MongoDB Startup Accelerator. One of the best advantages of the six-month accelerator is the priority support that we get. Early on, we migrated part of our existing MongoDB infrastructure to Atlas for one of our microservices. The Atlas technical services team was incredible in assisting us with migrating this data without downtime, and we were able to demo the new setup in a couple of days.
Getting Atlas credits as part of the program has also been terrific. When you’re a startup, it’s nice to be able to test drive a platform without any financial commitment. It let us defer thinking about the expenses and just focus on figuring out if the fit was right. The credits allowed us to get moving with a great platform at a time when we didn’t have a lot of resources.
Do What Matters
We’ve built Open Listings to be the best way to buy a home. MongoDB helps us move faster, and ship features faster so we can give our customers what they need. The problem is that many things—like data migration or scaling your database—still need to be done, but the bright side is that we’re able to get those out of the way because of MongoDB Atlas.
Because we’re able to be so efficient, we can refund our customers 50% of their buying agent fees at close. This is real savings coming back to people when they need it the most. Some use it to renovate their houses, but for others, it can mean the difference between getting the home of their dreams or settling on something that is “good enough.”
The difference isn't just in the cost savings, though. Open Listings offers the best all around customer experience because we focus closely on the customer's needs. We don't waste time sending faxes and we don't waste time on manual migrations either.
Want to get started? Try building a sample app with Atlas on the free tier.