Professional Documents
Culture Documents
Mongo X-Team Overview
Mongo X-Team Overview
Team Mission
The MongoDB x-team will be the steward of the MongoDB platform for Foursquare. It will be the
ambassador to the rest of engineering on how to be good citizens of the system, and consult on
the best practices of how to use (or not use) the platform.
Rationale
MongoDB is part of the core foundation of Foursquare’s infrastructure. Most (all?) of the writes
from our mobile and web applications hit MongoDB, and most of our services need to be able to
read from MongoDB. As such, it is a highly visible point of failure whenever it experiences
problems. We actually leverage MongoDB in such a way right now that we cannot even
withstand a single poorly performing node.
While it is easy (and often times right) to point fingers at MongoDB, we also have been misusing
it in many ways for a long time. In order to ensure that the platform remains healthy and viable,
we need to have engineers from all over the organization understand how to best incorporate it
into their designs, and help others on all product teams use it appropriately. At a minimum,
teams that use MongoDB should have some level of expertise on the system within the team.
In short, it is no longer feasible for a single person to work on MongoDB part time and expect it
to sustain the rest of our infrastructure.
Future:
- upgrade to 3.2? (this might be prod team’s responsibility)
- upgrade java driver to 3.X
- after 3.2 upgrade
- use document validation to prevent garbage documents from building up
- rename config servers to per cluster (mongo-configs-checkins-1 instead of
mongo-configs-1)
- make config servers into replica sets
Ongoing Tasks
- review new collection and index creation requests
- review new query patterns
- maintain and create tooling for MongoDB
- help teams monitor and alert on relevant metrics