At MongoDB World, the largest gathering of the MongoDB Community, you'll see how engineers and technical executives around the world have discovered the power of MongoDB to help them transform their businesses, using MongoDB to take innovative applications from pilot to production in weeks, not months, building high performance systems at scale.
Who's going to be at MongoDB World? Check out our fantastic speaker lineup and see how our speakers have taken their applications to scale at MongoDB World:
The DBA's future as the Database Adviser
With such a large shift towards NoSQL technologies like MongoDB, there is a lot of discussion about the changing role of the Database Administrator (DBA). Many go so far as to say DBAs are no longer needed , an idea driven by new database capabilities that focus on agility with a dynamic schema instead of a fixed schema and features that make operational management easier in areas like high availability and horizontal scaling. Based on my experience working with hundreds of customers to implement MongoDB in their organizations, there is still room for the DBA, even if their everyday tasks might take less time with MongoDB. First, let's talk about the parts of their role that stay the same. There still needs to be someone to set up back-up/recovery processes, handle capacity planning, run maintenance tasks (e.g. upgrades), diagnose issues, do configuration management, and set up replication and sharding. In enterprises, often separate operational teams handle security, monitoring, and diagnosing common issues but that could be part of the DBA's role in some firms as well. Notice I left out schema management; in MongoDB, the implementation of the schema is NOT predefined but is rather determined at the application level and the structure of the object is stored in the application team’s favorite programming language. This is incredibly valuable when business units request new features or data be added to the application. The application developer can simply add it in, and no change needs to be made in the database, enabling rapid agility. In this case, the DBA is no longer the middleman, and can focus on keeping the database up and running. But in some cases, application changes are more complex, and development teams need a database expert to consult about schema design and its impact on performance, maintainability, and other factors. In this case, the role of the DBA transforms into the DB Adviser. In this role, the DB Advisor would work closely with the application development team that implements the schema. The DBA provides the process and due diligence to manage the pace of change rather than enforce the limitations of the relational schema. Implementing the schema in the application might be disconcerting to some DBAs and others out there who rightfully worry about application developers making uninformed decisions and bringing down an application. Letting go of schema management might be a difficult step, but DBAs rely on application developers to make decisions in their application code on a regular basis. Creating a poorly constructed algorithm will bring the system to a crawl and querying fields in unexpected ways would cause performance problems as well. Is choosing schema design in the database so much more responsibility than any other development decision? The DBA should still guide developers, but without the enormous overhead of having to always update a relationship database schema to simply add a field! Your schema should be as dynamic as your business: agile with the optimal amount of control. The DBA has always been the person accountable to ensure the reliability and performance of the database alongside development teams. However, in today's market, the DBA will continue performing most of the activities they do in the former relational-only world, but will advise in other areas to allow their business groups to innovate and iterate faster than their competition. In this shift, the DBAs can take on new roles to help their businesses achieve more, faster. See how you can help your organizations get faster, better and leaner with MongoDB .
Modernize your GraphQL APIs with MongoDB Atlas and AWS AppSync
Modern applications typically need data from a variety of data sources, which are frequently backed by different databases and fronted by a multitude of REST APIs. Consolidating the data into a single coherent API presents a significant challenge for application developers. GraphQL emerged as a leading data query and manipulation language to simplify consolidating various APIs. GraphQL provides a complete and understandable description of the data in your API, giving clients the power to ask for exactly what they need — while making it easier to evolve APIs over time. It complements popular development stacks like MEAN and MERN , aggregating data from multiple origins into a single source that applications can then easily interact with. MongoDB Atlas: A modern developer data platform MongoDB Atlas is a modern developer data platform with a fully managed cloud database at its core. It provides rich features like native time series collections, geospatial data, multi-level indexing, search, isolated workloads, and many more — all built on top of the flexible MongoDB document data model. MongoDB Atlas App Services help developers build apps, integrate services, and connect to their data by reducing operational overhead through features such as hosted Data API and GraphQL API. The Atlas Data API allows developers to easily integrate Atlas data into their cloud apps and services over HTTPS with a flexible, REST-like API layer. The Atlas GraphQL API lets developers access Atlas data from any standard GraphQL client with an API that generates based on your data’s schema. AWS AppSync: Serverless GrapghQL and pub/sub APIs AWS AppSync is an AWS managed service that allows developers to build GraphQL and Pub/Sub APIs. With AWS AppSync, developers can create APIs that access data from one or many sources and enable real-time interactions in their applications. The resulting APIs are serverless, automatically scale to meet the throughput and latency requirements of the most demanding applications, and charge only for requests to the API and by real-time messages delivered. Exposing your MongoDB Data over a scalable GraphQL API with AWS AppSync Together, AWS AppSync and MongoDB Atlas help developers create GraphQL APIs by integrating multiple REST APIs and data sources on AWS. This gives frontend developers a single GraphQL API data source to drive their applications. Compared to REST APIs, developers get flexibility in defining the structure of the data while reducing the payload size by bringing only the attributes that are required. Additionally, developers are able to take advantage of other AWS services such as Amazon Cognito, AWS Amplify, Amazon API Gateway, and AWS Lambda when building modern applications. This allows for a severless end-to-end architecture, which is backed by MongoDB Atlas serverless instances and available in pay-as-you-go mode from the AWS Marketplace . Paths to integration AWS AppSync uses data sources and resolvers to translate GraphQL requests and to retrieve data; for example, users can fetch MongoDB Atlas data using AppSync Direct Lambda Resolvers. Below, we explore two approaches to implementing Lambda Resolvers: using the Atlas Data API or connecting directly via MongoDB drivers . Using the Atlas Data API in a Direct Lambda Resolver With this approach, developers leverage the pre-created Atlas Data API when building a Direct Lambda Resolver. This ready-made API acts as a data source in the resolver, and supports popular authentication mechanisms based on API Keys, JWT, or email-password. This enables seamless integration with Amazon Cognito to manage customer identity and access. The Atlas Data API lets you read and write data in Atlas using standard HTTPS requests and comes with managed networking and connections, replacing your typical app server. Any runtime capable of making HTTPS calls is compatible with the API. Figure 1: Architecture details of Direct Lambda Resolver with Data API Figure 1 shows how AWS AppSync leverages the AWS Lambda Direct Resolver to connect to the MongoDB Atlas Data API. The Atlas Data API then interacts with your Atlas Cluster to retrieve and store the data. MongoDB driver-based Direct Lambda Resolver With this option, the Lambda Resolver connects to MongoDB Atlas directly via drivers , which are available in multiple programming languages and provide idiomatic access to MongoDB. MongoDB drivers support a rich set of functionality and options , including the MongoDB Query Language, write and read concerns, and more. Figure 2: Details the architecture of Direct Lambda Resolvers through native MongoDB drivers Figure 2 shows how the AWS AppSync endpoint leverages Lambda Resolvers to connect to MongoDB Atlas. The Lambda function uses a MongoDB driver to make a direct connection to the Atlas cluster, and to retrieve and store data. The table below summarizes the different resolver implementation approaches. Table 1: Feature comparison of resolver implementations Setup Atlas Cluster Set up a free cluster in MongoDB Atlas. Configure the database for network security and access. Set up the Data API. Secrect Manager Create the AWS Secret Manager to securely store database credentials. Lambda Function Create Lambda functions with the MongoDB Data APIs or MongoDB drivers as shown in this Github tutorial . AWS AppSync setup Set up AWS Appsync to configure the data source and query. Test API Test the AWS AppSync APIs using the AWS Console or Postman . Figure 3: Test results for the AWS AppSync query Conclusion To learn more, refer to the AppSync Atlas Integration GitHub repository for step-by-step instructions and sample code. This solution can be extended to AWS Amplify for building mobile applications. For further information, please contact email@example.com .