MongoDB Blog

Articles, announcements, news, updates and more

Designing a CLI: 11 Principles from the MongoDB Realm Design Team

Don Norman saw this coming. Back in 2007 , Norman, one of the giants of user-centered design, predicted that the next UI breakthrough in the design world would be the command-line interface (CLI). Noting the limitations of graphical user interfaces and the capabilities of command-line language in search functions, Norman staked this bold claim: “Command line interfaces are back again, hiding under the name of search. Now you see them, now you don't. Now you see them again. And they will get better and better with time: Mark my words, that is my prediction for the future of interfaces.” In 2020, the return of the CLI is, perhaps, debatable. In the world of software development, CLI's still dominate with software professionals , due to their wide availability, high capacity for automation, and cultural fit with the developer ethos. But in the design world, “user experience” is still largely associated with modern web and mobile interfaces — clean whites, curved borders, and gradient buttons. Design interventions of the CLI are often left to the wayside. Here at MongoDB, our designers understand the importance of the CLI to our users. Through internal discussion and collaboration with our product and engineering teams, we are working hard to match the user experience of the CLI to our user’s needs. As such, the MongoDB Realm team has been working on a revamp of our Realm CLI to be released by the end of Q4. In order to improve the experience of using the CLI, our UX research and Realm design teams have conducted primary and secondary research, attempting to figure out how our CLI is used, and how developers commonly interact with CLIs writ large. Based on our findings, we created a list of 11 CLI UX principles for the Realm CLI . We call this our CLI Design Cheat Sheet. Modeled off Nielson-Norman’s Usability Heuristics , this set of principles has allowed us to inform and streamline our CLI design process, and to foster a user-centered approach across our product’s operations. It’s my hope that presenting these principles will help others design better CLIs, too. We’ll provide some CLI illustrations that are not representative of the new Realm CLI, but can help show these principles visually. 1. Allow users to create and clone Realm applications and assets via the CLI Develop short and easy-to-understand commands for app creation and cloning. Consider dividing this command into an object and an action: For example, the command may read realm app clone , where “app” is the object, and “clone” is the action. 2. Use accessible language to bridge the CLI and the real world The system should speak the users' language, with words, phrases, and concepts familiar to the user, rather than system-oriented terms. When creating CLI commands and prompts, use questions or phrases that resemble sentences. Avoid positional arguments, where the order matters. These types of arguments can be confusing. Use flags instead of args. Although they require a little more typing, flags better prevent input errors (e.g., realm fork --from sourceapp --to destapp ) compared to args (e.g., realm fork -sourceapp ) When collecting user information, use questions to make the CLI more conversational. For example, when initializing, the CLI can ask the user questions such as, “What’s your project name?” when determining the user’s framework. 3. Simplify CLI outputs to increase user control Complicated and messy outputs reduce user control and diffuse action. CLI users expect high-level outputs following a command. Make outputs simple so that users don’t need to scroll through multiple lines of text to find what they need. The MongoDB CLI provides a good example of human-friendly CLI output: Human-friendly MongoDB CLI output. Additionally, the CLI should allow for both human-friendly (plaintext) output, and machine-friendly (JSON) output. A user should be able to define which output they’d like to see. For example, the MongoDB CLI has the following functionalities that allow users to define their output as plaintext or JSON: Illustration: Allowing users to choose between different output formats. 4. Make terminologies consistent Try to use the same terminology consistently across your product’s system. In the case of Realm, the product’s CLI should use the same terminology as its GUI, as well as other CLI’s across the MongoDB platform. Additionally, try to draw from the user’s context with terminologies from the tools and CLIs that are already familiar to your users. 5. Prevent errors As mentioned before, the use of flags -- as opposed to args -- is one way to accomplish this. Another consideration is to have clear warnings and retype commands. These can better prevent destructive mistakes. For instance, instead of using a “Y/N” prompt, consider having the user re-type their input, and prefacing with a warning that it may result in drastic changes to their program. Illustration: Providing a warning and a retype command to prevent destructive errors. 6. Maximize user recognition by combining commands or prompting input Make the CLI experience more efficient and easy-to-use by easing the user’s memory load. One way to do that is by giving users a single command to perform a task, which doesn’t require them to remember certain inputs. For MongoDB Realm, this principle can be mobilized to improve our authentication experience. A single command can be called to automatically generate CLI credentials from the Realm CLI for Atlas. If it isn’t possible or ideal to combine several commands, then consider a prompt showing users a choice of complicated options in the CLI. Rather than asking users to type and remember an input, the CLI can show them a series of options. Illustration: A prompt suggesting complicated inputs that are hard to remember 7. Make the CLI more flexible by allowing users to easily set and change configuration options Understood generally, this principle is meant to highlight user freedom and customization capability. The CLI should provide straightforward commands that can allow users to easily set and change things as they wish. In the case of Realm, we are looking to make MongoDB auth configuration file creation automatic upon Realm initialization, with the access token stored in the user’s home folder. This makes configuration more efficient. Additionally, we are considering allowing users to change their config file directly in the CLI to increase user flexibility. 8. Implementing aesthetics and interactions There are different visual considerations that can improve CLI interactions and experiences. Here are a few examples: Adding better color support (e.g., Yellow or green = good; red = wrong) Adding visual hierarchy for tables (e.g., making headers stand out through highlighting) Adding spinners, progress bars, and/or step count to show long-running tasks Illustrations: Different ways to show task runtime. 9. Help users recognize, diagnose, and recover from errors Error messages should be expressed in plain language (no codes), precisely indicate the problem, and constructively suggest a solution. They should be informative and should indicate next steps. Consider providing or linking to a troubleshooting guide or links to documentation as part of your error messages. 10. Help and documentation For users that decide not to go through the CLI docs, the help command is vital. We recommend writing a small description of the CLI’s purpose in the --help command. Also, consider providing links to documentation when necessary (i.e. as part of an error message). An example of an effective --help output is seen in the MongoDB CLI: The MongoDB CLI's --help output is both descriptive and concise. 11. Maintain user control and freedom by allowing users to opt-out of data collection Allow users to control data collection settings from their config in the CLI. This functionality can be provided with a command. In the case of realm, this may look like: --realm telemetry-disable . We hope these principles provide a solid foundation for designers and developers looking to create effective, user-centered CLIs. Be on the lookout for a new version of our Realm CLI by the end of Q4! Interested in trying MongoDB Realm ? Start building your app today! Start Free

October 21, 2020
Developer

Using MongoDB CLI to Get Atlas Performance Advice From Your Terminal

MongoDB CLI brings the power of your MongoDB cloud (MongoDB Atlas, MongoDB Cloud Manager, and MongoDB Ops Manager) to your terminal, helping you write advanced scripts and automate different workflows for your MongoDB cloud infrastructure. We released MongoDB CLI's first stable version back in June. So far we've seen more than 100 clusters deployed with the tool, as well as with many other operations such as getting metrics for these clusters or managing backups. Meanwhile, we've been busy adding new features and listening to your feedback as to what we should add next. With the latest release of mongocli , we have added the ability to get Atlas performance recommendations. Let's see how they work. $ mongocli atlas clusters create slowQueriesDemo \ --region EASTERN_US \ --members 3 \ --tier M30 \ --provider GCP \ --mdbVersion 4.4 \ --diskSizeGB 30 This command deploys a three-member replica named slowQueriesDemo, with GCP as the backing cloud provider. You can always use mongocli atlas clusters create --help to review all available options when creating a cluster. Getting your new cluster ready can take some time. Use mongocli to be notified when your changes are available with a watch : $ mongocli atlas clusters watch slowQueriesDemo Performance Advisor works by scanning your Atlas Cluster logs and finding any slow operations that could be affecting the performance of your queries. For this example, I loaded my demo Atlas cluster with some dummy data. I executed a series on MongoDB commands where I expect to see the Performance Advisor recommend new indexes to improve my queries. If you're not seeing any suggestions, please check our docs . The performance advisor command requires a process identifier. To check for the processes available to our project: $ mongocli atlas processes ls ID REPLICA SET NAME SHARD NAME VERSION atlas-00-00.gcp.mongodb.net:27017 atlas-fjszq1-shard-0 4.4.1 atlas-00-01.gcp.mongodb.net:27017 atlas-fjszq1-shard-0 4.4.1 atlas-00-02.gcp.mongodb.net:27017 atlas-fjszq1-shard-0 4.4.1 We want to pick one process ID related to our cluster, and then use it with the performance advisor: $ mongocli atlas performanceAdvisor suggestedIndexes ls --processName atlas-00-01.gcp.mongodb.net:27017 ID NAMESPACE SUGGESTED INDEX 5f75c6d38788f14f816f80ee loadTest.saildrone { timeUTC: 1 } 5f75c6d38788f14f816f80ef loadTest.saildrone { id: 1, arrayOperation: 1, decimal: 1, nested.field: 1, quotedReservedWordField: 1, date: 1, binary: 1, embeddedArrayDocument: 1, embeddedDocument: 1, embeddedArray: 1, embeddedDocumentArray: 1, nullValue: 1, coordinates.latitude: 1 } 5f75c6d38788f14f816f80f0 loadTest.saildrone { RH_MEAN: 1 } When running this command, you'll get all recommended indexes for the given process, along with the related namespace. You can use this information to make a decision on creating new indexes that could improve different operations over your database. To automate this process, we can write a small script to create all recommended indexes. This script will leverage the existing mongocli command to create rolling indexes. Then we’ll rerun our index recommendations and transform that into arguments to the create index command.: mongocli atlas performanceAdvisor suggestedIndexes ls \ --processName atlas-00-01.gcp.mongodb.net:27017 \ | awk 'BEGIN{ORS=" ";}{if (NR!=1){split($2,a,"."); print a[1]; print a[2]; for(i=4;i<=NF-1;++i)printf $i} printf"\n"}' \ | xargs -n3 sh -c 'echo "Creating index db: $1 collection: $2 index: $3"; mongocli atlas clusters indexes create --clusterName slowQueriesDemo --db $1 --collection $2 --key $3' sh This more advanced example shows how to combine or pipe different commands and automate different workflows, in this case saying goodbye to any slow queries. This is just one of the many things you can do with mongocli. We are constantly adding new features, so let us know what you would like to see next . Ready to see for yourself? Try MongoDB Atlas today! Sign up now Get MongoDB CLI! Download

October 19, 2020
Developer

Meet Nicholas Cottrell: How My Experience Using MongoDB Inspired My First Book

I sat down with Nicholas (Nic) Cottrell, Technical Services Program Manager, to talk about his career progression at MongoDB and the exciting news of his recent book release, MongoDB Topology Design : Scalability, Security, and Compliance on a Global Scale. Ashley Perez: Prior to joining MongoDB, you already were familiar with our products. How did you learn about us, and why did you decide to join the team? Nic Cottrell: I've always been interested in natural language technologies and was, at the time, building a multilingual version of WordNet to facilitate machine translation of websites. I had experimented with object databases and tried to scale with systems built on top of SQL. I couldn’t find anything that would scale until I stumbled upon MongoDB around 2011. I remember being at a MongoDB event in Paris where they presented replication and sharding. I was blown away by both the implementation and the potential for scaling. I ended up using MongoDB for consulting clients and personal projects. I transitioned from customer to employee when I had completed several large consulting projects in Sweden. In spring of 2017, I had moved to France for my wife's work, and it seemed like the perfect time to seek new challenges. I wanted to leverage my experience with MongoDB, so joining MongoDB as a Consulting Engineer that October seemed like an excellent way to complement those existing skills. AP: Wow. You’ve been working with our technologies for quite some time. So, you started as a Consulting Engineer but continued to progress your career in other ways? NC: Correct. While I loved the consulting role, the amount of travel made it hard to spend time with my kids (aged one and three at the time). MongoDB is very supportive of work/life balance, so we found that a move into a technical services role would be a good solution. This remote position is much more flexible and means I can pick up the kids from school and make them dinner. I catch up on cases and email in the calm of the evening to round out the day. AP: What does the Technical Services team do? NC: The Technical Services team assists our customers with applications and databases already in deployment. We help recover systems when an unexpected event has occurred (hardware failure, for example). We can diagnose changes in performance and track it back to things such as new network misconfigurations, app features, or changes in user patterns. Being a Technical Services Engineer (TSE) sometimes feels like playing Dr. House. We have to diagnose complex systems with partial information, and success means working with customers to perform the right tests and collect the right information to identify a root cause(s). In other cases, it’s like playing Inspector Poirot. We can see that part of the system misbehaved, but the obvious suspect is seldom the real perpetrator. Customers can provide a set of diagnostic information including internal metrics from the member nodes, information about the automation of cluster components from our Ops Manager tool , and details of the host and operating system configuration. We have tools that let us visualize and zoom in to one-second intervals to piece together the timeline of events and solve the mystery. By working in pairs with our engineering colleagues, we solve these issues more quickly and also transfer knowledge and skills to our growing team. AP: Interesting way to describe it. Sounds as if the Technical Services team is perfect for curious minds who like a good puzzle. You've recently made another career move, right? Can you tell me about your new role? NC: In August 2020, I moved into a program management role within the same team. I am working on several initiatives, including expanding our knowledge management systems and our premium services offering such as Named TSE . I am now working with a larger group within MongoDB globally and am involved in the entire life cycle of the technical services experience from the customers' perspective. AP: How has MongoDB supported your career growth? NC: MongoDB has very clear and well-defined corporate values. Unlike most places I've worked, people internalize these, and I experience them every day in what we do. In particular, our culture of taking responsibility as a group improves both the product and our service delivery. As an engineer, I was encouraged to share ideas for changes, propose solutions, and follow through with getting them implemented. I feel as if the entrepreneurial spirit is alive and well despite our huge growth. AP: I hear the Technical Services team is encouraged to work on side projects. I’m sure that helps accelerate career growth too. Can you tell me a bit about that? NC: Absolutely. We are encouraged to spend about four hours a week on other projects. For some, this can mean self-education and preparing for accreditations such as AWS professional-level exams. For me, due to my development background, I focused on improving our tooling. This let me learn a new programming language ( Go ) and test out our new drivers in the process. The tool I built has become a core component in our case assignment workflow globally. It’'s been great to see it have so much positive impact. Our staff engineers get to spend even more time on other projects, including guiding junior engineers, and also delving deeper into special use cases, writing tools, and knowledge base articles. All these projects can have a multiplier effect on our capacity as a team to solve customer issues quickly and efficiently. AP: Very cool. How else do you feel MongoDB sets itself apart from other companies as a place to work? NC: I love the responsiveness and approachability of our management, from individual product managers to top-level executives. It's a very flat organization, and we make use of modern techniques such as 1:1 skip meetings so we keep two-way communication open across the company. Most things move very quickly, and now that our product catalog has grown, there's a lot of news to catch up on.There are always exciting announcements around the corner. As an employee, my contributions are appreciated and actioned, and I directly benefit from the financial success of the company. AP: Thanks for sharing your experience. Now, are you ready to share your exciting news? Congrats on your recent book release! I’d love to hear more about it. NC: Thank you. My book, MongoDB Topology Design : Scalability, Security, and Compliance on a Global Scale , released in September 2020. It was inspired by questions and concerns raised during my consulting engagements, as well as my participation in our Ask the Experts booths and trainings at various MongoDB.local and World events . The book is intended to assist large enterprises managing MongoDB themselves on-premises or in cloud instances. These customers tend to have very specific security and data protection requirements and a low tolerance for any negative production impact. I wanted to create something that both management and engineers could read to get up to speed on how MongoDB works and the issues to consider when scaling out a large deployment. There are several small things that can make it much easier to scale out globally later. AP: That sounds like an amazing resource for our customers. How did members of MongoDB support you during your writing process? NC: MongoDB itself was very supportive, and I was encouraged to reach out internally to our developers to ensure complete accuracy. My manager even helped proofread my draft copies. While MongoDB Atlas is definitely the future for MongoDB production deployments, I wanted to make sure organizations that are still required to manage their own infrastructure have a single reference while industries prepare themselves for a fully cloud, SaaS world. Interested in pursuing a career at MongoDB? We have several open roles on our teams across the globe , and would love for you to build your career with us!

October 16, 2020
Culture

1Data - PeerIslands Data Sync Accelerator

Today’s enterprises are in the midst of digital transformation, but they’re hampered by monolithic, on-prem legacy applications that don’t have the speed, agility, and responsiveness required for digital applications. To make the transition, enterprises are migrating to the cloud. MongoDB has partnered with PeerIslands to develop 1Data, a reference architecture and solution accelerator that helps users with their cloud modernization. This post details the challenges enterprises face with legacy systems and walks through how working with 1Data helps organizations expedite cloud adoption. Modernization Trends As legacy systems become unwieldy, enterprises are breaking them down into microservices and adopting cloud native application development. Monolith-to-microservices migration is complex, but provides value across multiple dimensions. These include: Development velocity Scalability Cost-of-change reduction Ability to build multiple microservice databases concurrently One common approach for teams adopting and building out microservices is to use domain driven design to break down the overall business domain into bounded contexts first. They also often use the Strangler Fig pattern to reduce the overall risk, migrate incrementally, and then decommission the monolith once all required functionality is migrated. While most teams find this approach works well for the application code, it’s particularly challenging to break down monolithic databases into databases that meet the specific needs of each microservice. There are several factors to consider during transition: Duration. How long will the transition to microservices take? Data synchronization. How much and what types of data need to be synchronized between monolith and microservice databases? Data translation in a heterogeneous schema environment. How are the same data elements processed and stored differently? Synchronization cadence. How much data needs syncing, and how often (real-time, nightly, etc.)? Data anti-corruption layer. How do you ensure the integrity of transaction data, and prevent the new data from corrupting the old? Simplifying Migration to the Cloud Created by PeerIslands and MongoDB, 1Data helps enterprises address the challenges detailed above. Migrate and synchronize your data with confidence with 1Data Schema migration tool. Convert legacy DB schema and related components automatically to your target MongoDB instance. Use the GUI-based data mapper to track errors. Real-time data sync pipeline. Sync data between monolith and microservice databases nearly in real time with enterprise grade components. Conditional data sync. Define how to slice the data you’re planning to sync. Data cleansing. Translate data as it’s moved. DSLs for data transformation. Apply domain-specific business rules for the MongoDB documents you want to create from your various aggregated source system tables. This layer also acts as an anti-corruption layer. Data auditing. Independently verify data sync between your source and target systems. Go beyond the database. Synchronize data from APIs, Webhooks & Events. Bidirectional data sync. Replicate key microservice database updates back to the monolithic database as needed. Get Started with Real-Time Data Synchronization With the initial version of 1Data, PeerIslands addresses the core functionality of real-time data sync between source and target systems. Here’s a view of the logical architecture: Source System. The source system can be a relational database like Oracle, where we’ll rely on CDC, or other sources like Events, API, or Webhooks. **Data Capture & Streaming.**Captures the required data from the source system and converts them into data streams using either off-the-shelf DB connectors or custom connectors, depending on the source type. 1Data implements data sharding and throttling, which enable data synchronization at scale, in this phase. Data Transformation. The core of the accelerator, when we convert the source data streams into target MongoDB document schemas. We use LISP-based Domain Specific Language to enable simple, rule-based data transformation, including user-defined rules. Data Sink & Streaming. Captures the data streams that need to be updated into the MongoDB database through stream consumers. The actual update into the target DB is done through sink connectors. Target system. The MDB database used by the microservices. Auditing. Most data that gets migrated is enterprise-critical; 1Data audits the entire data synchronization process for missed data and incorrect updates. Two-way sync. The logical architecture enables data synchronization from the MongoDB database back to the source database. We used MongoDB, Confluent Kafka and Debezium to implement this initial version of 1Data: The technical architecture is cloud agnostic, and can be deployed on-prem as well. We’ll be customizing it for key cloud platforms as well as fleshing out specific architectures to adopt for common data sync scenarios. Conclusion The 1Data solution accelerator lends itself to multiple use cases, from single view to legacy modernization. Please reach out to us for technical details and implementation assistance, and watch this space as we develop the 1Data accelerator further.

October 15, 2020
Developer

Announcing Azure Private Link Integration for MongoDB Atlas

We’re excited to announce the general availability of Azure Private Link as a new network access management option in MongoDB Atlas . MongoDB Atlas is built to be secure by default . All dedicated Azure clusters on Atlas are deployed in their own VNET. For network security controls, you already have the options of an IP Access List and VNET Peering . The IP Access List in Atlas offers a straightforward and secure connection mechanism, and all traffic is encrypted with end-to-end TLS. But it requires that you provide static public IPs for your application servers to connect to Atlas, and to list all such IPs in the Access List. And if your applications don’t have static public IPs or if you have strict requirements on outbound database access via public IPs, this won’t work for you. The existing solution to this is VNET Peering, with which you configure a secure peering connection between your Atlas cluster’s VNET and your own VNET(s). This is easy, but the connections are two way. While Atlas never has to initiate connections to your environment, some customers perceive VNET peering as extending the perceived network trust boundary anyway. Although Access Control Lists (ACLs) and security groups can control this access, they require additional configuration. MongoDB Atlas and Azure Private Link Now, you can use Azure Private Link to connect a VNET to MongoDB Atlas. This brings two major advantages: Unidirectional: connections via Private Link use a private IP within the customer’s VNET, and are unidirectional such that the Atlas VNET cannot initiate connections back to the customer's VNET. Hence, there is no extension of the network trust boundary. Transitive: connections to the Private Link private IPs within the customer’s VNET can come transitively from another VNET peered to the Private Link-enabled VNET, or from an on-prem data center connected with ExpressRoute to the Private Link-enabled VNET. This means that customers can connect directly from their on-prem data centers to Atlas without using public IP Access Lists. Azure PrivateLink offers a one-way network peering service between an Azure VNET and a MongoDB Atlas VNET Meeting Security Requirements with Atlas on Azure Azure Private Link adds to the security capabilities that are already available in MongoDB Atlas, like Client Side Field-Level Encryption , database auditing , BYO key encryption with Azure Key Vault integration , federated identity , and more. MongoDB Atlas undergoes independent verification of security and compliance controls , so you can be confident in using Atlas on Azure for your most critical workloads. Ready to try it out? Get started with MongoDB Atlas today! Sign up now

October 15, 2020
News

Meet Alejandro Torrealba: How My Willingness to Learn and Embrace Different Cultures Has Grown My Career

In honor of National Hispanic/Latinx Heritage Month, I sat down with Alejandro Torrealba to learn more about his career at MongoDB, how moving around the world has allowed him to embrace his passion for other cultures, and how he honors his Venezuelan roots. Alejandro is a Technical Program Manager at MongoDB. Take a look at his story. Ashley Perez: It sounds as if you’ve had an exciting start to your career, especially in terms of all the places you’ve lived. Can you tell me a bit more about that? Alejandro Torrealba: I always like to learn new things, relate to new and different people, and apply logical and mathematical thinking to solve problems. As I finished my computer engineering degree, I had a technical internship supporting Microsoft Venezuela’s marketing department. After working a few years, I decided I wanted to interact with different cultures and professional spaces, so I went to England to get my master’s in computer science and worked at a London startup, first as head of development and later as a product manager. After five years in London, I left the startup to work as a product owner at a much bigger European corporation in Edinburgh. Eventually, I was promoted to the role of an agile program manager there. In 2018, I moved to New York for personal reasons. When considering job opportunities, I wanted to work for a growing, innovative organization with modern products that had a diverse and inclusive team, high working standards, and strong branding. With those criteria, I applied to MongoDB and officially joined the team in May 2019 as a technical program manager. AP: As a travel lover myself, I’m a little envious of all the amazing places you’ve lived. Very cool! And it sounds as if MongoDB benefited from your move to New York. Can you tell me about your role? AT: On the Technical Program Management team, we focus on managing and supporting the processes to ensure lean and timely software delivery. That requires a technical understanding of what we want to build, knowledge of the “team’s personality,” cross-team communication, planning, and follow-ups. Each technical program manager works with a defined number of teams, managing cross-team initiatives and performing process improvement and automation projects. Outside of the projects we manage, we usually have regular program manager team meetings to coordinate, share ideas, support each other, and generally catch up. AP: Before COVID-19, you worked in our New York headquarters. What was that like? AT: New York City is one of the greatest cities and cultural centers in the world. The diversity there brings people together from all continents, religions, gender preferences, and professions, providing infinite choices for different relationships, work opportunities, technologies, entertainment, arts, dance, food, and social events. MongoDB’s NYC office reflects this variety too . There is significant diversity of personal and professional backgrounds, and every person is well-acknowledged and respected. As there is space for everyone in NYC, there is space for excellent employees at MongoDB. You just have to make sure you do a great job! AP: Speaking of diversity, let’s talk about Hispanic/Latinx Heritage Month. What does it mean to you? AT: It is a time to commemorate and celebrate the Latino American people's continuous contributions in building the United States’ modern society. For me, that celebration is a welcoming message to all the Latino American people willing to work and continue contributing. There is so much of the Latino American culture found in NYC, including food, music, dance, sports, people, arts, and more. Even during the pandemic, there are plenty of options for experiencing the culture. I am sure there are great taco and arepa places that can deliver you a taste of that, and good online events for you to see salsa dancing! MongoDB is a place where you can be and express who you are. One of our core values literally embraces the “power of differences,” and this has shaped our company culture. That is something many of us may take for granted, but in reality, the MongoDB culture has been designed to be inclusive, and we invest to make it better in that way. This is why we’re able to celebrate things like Hispanic/Latinx Heritage Month. And we will continue to celebrate other aspects of the diversity we have here as well. AP: Is there anything you’d like to share about your culture that’s a huge part of who you are? AT: Kindness, sharing, and being family-oriented were always big parts of the Venezuelan culture, as I know it has been part of Latino American culture in general. As Venezuelans, my family always emphasized these values, as well as learning, working, and having some fun and celebration to connect with family and friends. I like to keep these values no matter where I live. My culture has also taught me to be kind to others, conserve the books I read so that others can read them later, and not to ever waste food. AP: How do you keep your culture alive as you move around? AT: I have great friends from Venezuela who live in New York, and we see each other frequently. Apart from that, I enjoy specific Latin food places and never get tired of inviting friends and coworkers to share that food with me. I also try to enjoy other cultures, especially by spending time with friends I’ve made in the United Nations systems and other international organizations. After living and working in a few places, I truly believe that most people are naturally willing to relate to others in a safe way, so it’s been interesting to share our cultures with one another. AP: That’s a great way to look at it. Backtracking a bit, I’d love to learn more about why you chose MongoDB and what makes you stay. AT: Once I arrived in New York, I was looking for a growing technology company that was a leader in its industry and financially stable, with an excellent reputation as an employer. I found all of that in MongoDB. I have worked with teams from Venezuela, Colombia, Mexico, England, Scotland, the Netherlands, Belgium, Poland, India, and different places from the United States during my career. From that experience, I can affirm our standard for professionalism and excellence here is very high, generating the best products quickly. I believe it represents an attractive challenge for anyone in the technology industry. I can say all the great reviews I read on Glassdoor while applying to MongoDB are totally true. AP: Any parting thoughts for why someone would want to join your team? AT: At MongoDB, you’ll have the freedom to do your job in the best way possible while responding to high, transparent, and fair expectations. We discuss, agree, do our work, check results, look for improvement, and support each other as needed. It’s a great environment to grow your career and genuinely an amazing place to work. Interested in pursuing a career at MongoDB? We have several open roles on our teams across the globe , and would love for you to build your career with us! Join MongoDB in supporting organizations fighting for racial justice and equal opportunity. Donate to our fund by December 31, 2020 and MongoDB will match the donation up to a maximum aggregate amount of $250,000. Learn more here .

October 15, 2020
Culture

MongoDB Atlas Powers Half a Billion Players of India's Favorite Mobile Pastime, Ludo King

Nothing is more human than playing games. Boards and pieces can be found from the beginnings of civilization — little scraps of technology we created to entertain ourselves. No wonder, then, that gaming is a dominant force in mobile tech. What's more surprising is that some of the most successful mobile games are versions of some of the oldest traditions. Take Ludo. A classic board game for up to four players, it can trace its direct ancestry to 6th-century India and is built from much older ideas. Players roll a die to move pieces from home along a track to a finish; the first to get all pieces there wins. You can't pass an opponent on the track, but if you land on them they go back to the start. That's it. Simple. But the way it brings players together has been enough to make Ludo the national game of the subcontinent. Now Ludo is king of the phones, in the shape of Gametion's Ludo King app. A faithful yet stylish rendition of the board game, it retains the game's simplicity and social interaction, but at an epic scale. It topped the charts for Google Play downloads in India and reached the top ten internationally, with tens of millions of players chalking up a quarter of a billion minutes of playing time a day. At one point, numbers quadrupled overnight. Yet all this was managed by a tiny team of developers who'd built their platform on MongoDB Atlas , the global cloud database service. Gametion Founder and CEO Vikash Jaiswal Ludo King's authentic board game emulation quickly tapped into the Indian psyche. "We had strong takeup right from 2016, when we launched the first version," says Gametion founder and CEO Vikash Jaiswal. "A million downloads in the first 25 days, and up to a million minutes of play a day by the start of 2020. We were doing very well already. Then came the lockdown and we went through the roof." "We Just Wanted to Concentrate on the Game" Gametion was the quintessential small gaming startup. In 2015, it had a couple of developers out of a staff of four or five, and they'd produced a suite of in-browser Flash games. The next move was obviously mobile. But at first, the company didn't move far from the idea of a simple gaming experience. Jaiswal says: "There was no database component to the Flash games, no login or user ID. We launched Ludo King in 2016 as a single player game, and soon got the user feedback that they wanted multiplayer features. You need user accounts and user data for that." The company takes pride in how quickly it can adopt and incorporate new technologies, explains Jaiswal, but that means finding the right technology to adopt. And the game was exhibiting demanding growth. "Ludo King was becoming very popular, so we knew we needed something that could scale. It had to be quick to learn — we didn't have time for complexity or long learning curves." MongoDB seemed a good fit for an underlying database. I knew it was fast and very flexible to build on, and it had lots of features. And it turned out to be a really good fit for mobile gaming &#8212; MongoDB integrates very well into our Node.js architecture. It's a native speaker. Vikash Jaiswal, Founder and CEO, Gametion Jaiswal's team was able to rely on MongoDB's flexible data model to continually expand the game's features, including more options for players and monetisation tactics. That's never stopped. In 2020, Gametion introduced two new in-game features: voice chat and egreetings to users. But they had no interest in the nuts and bolts of database administration. "We didn't want to make our own backend or worry about scaling, management or any of that. We just wanted to concentrate on the game," says Jaiswal. MongoDB Atlas hadn't made its debut yet at the time — Gametion being ahead of the game -- so the company chose the third-party mLab platform for hosting. Then in 2019, after mLab was acquired by MongoDB Inc, Gametion transitioned from mLab to MongoDB Atlas, the platform made and managed by the company behind the database. MongoDB Atlas: A 'Native Speaker' for Mobile Gaming Transitions can be challenging, but with the same underlying architecture and the support of MongoDB itself, this one was straightforward. In fact, it was so uneventful that Jaiswal says he can't remember it happening. "I don't recall any problems at all. There was no downtime, which I definitely would have remembered. MongoDB managed it all for us. The migration must have been very smooth." Once on MongoDB Atlas, running on AWS's cloud infrastructure, the team — which was now five developers — quickly found the features that mattered, such as Continuous Cloud Backup and Performance Advisor . "The dashboard is very cool. We can dial up the performance we need when we need it, and see exactly what's going on." Ludo King's Lockdown Gametion's emphasis on common open standards and a component approach has made it easy to add other functions as the game demands, maintaining a regular schedule of updates that keep the users engaged. "You can think of it as a microservices architecture. We use Kafka to manage data movement and synchronize between services. It's another way to optimize resource use across the board without sacrificing scalability or release cadence." Infrastructure Diagram for Ludo King That's something you need when you go from being one of the top mobile games in India to the uncontested champ. "At the start of March 2020, we had between 150,000 and 200,000 simultaneous users, but when lockdown hit that month, it jumped to a million, 1.5 million. We went from 8,000 IOPS to peaking at 35,000." "With 145 million downloads in the first week of lockdown alone, quickly finding the rights answers was important," says Jaiswal. "We have 50 million users a day, averaging 50 minutes of gameplay each. Some of them are on for five, six hours at a stretch." MongoDB is Integral to Future Growth The future will see more features on Ludo King, such as league tables and what Gametion sees as its primary revenue generator: in-app purchases. It'll also see some brand-new games. MongoDB is integral to this strategy, both to power innovation and to manage the consequences of success. And Gametion's roadmap is growing with its market, which means it will need features for economically managing huge numbers of casual users. " Atlas Data Lake looks useful," says Jaiswal. "We want to move inactive players — those who haven't been online in a while — away from the main database, but we don't want to just delete them." Efficiently managing hundreds of millions of users — and supporting near-instantaneous, 1,000% growth — would have once required the resources of a large corporation. But for Gametion, which still has fewer than 100 employees, these aren't limiting factors. In August 2020, India Prime Minister Narendra Modi even highlighted the success of the the game during his monthly radio programme. Ludo King is helping to fulfill the vision of popularising Indian games with a global audience. For now, Gametion's focus is growth. And MongoDB is part of that experience, the game piece that shows where you are and implements your strategy, quietly and efficiently. MongoDB Atlas is not just a database, it's a genuine game changer. Try MongoDB Atlas Free

October 9, 2020
Applied

Ready to get Started with MongoDB Atlas?

Get Started