1:25-cv-00641
MongoDB Inc v. Ferretdb Inc
I. Executive Summary and Procedural Information
- Parties & Counsel:
- Plaintiff: MongoDB, Inc. (Delaware)
- Defendant: FerretDB Inc. (Delaware)
- Plaintiff’s Counsel: Shaw Keller LLP
- Case Identification: 1:25-cv-00641, D. Del., 05/23/2025
- Venue Allegations: Venue is alleged to be proper in the District of Delaware because Defendant FerretDB Inc. is a Delaware corporation that resides and maintains a place of business within the district.
- Core Dispute: Plaintiff alleges that Defendant’s non-relational database product infringes four patents related to database query optimization, data aggregation frameworks, and reliable write operations.
- Technical Context: The dispute is in the field of non-relational ("NoSQL") database management systems, which are critical for handling large volumes of unstructured and semi-structured data for modern web applications.
- Key Procedural History: The complaint alleges that Plaintiff sent Defendant three pre-suit letters on November 3, 2023, November 29, 2023, and May 16, 2025, with the final letter including claim charts, putting Defendant on notice of the alleged infringement before the suit was filed.
Case Timeline
| Date | Event |
|---|---|
| 2007-01-01 | Plaintiff MongoDB, Inc. founded |
| 2009-01-01 | Plaintiff launches its non-relational document database |
| 2012-07-26 | Priority Date for ’463, ’462, and ’956 Patents |
| 2015-03-31 | U.S. Patent No. 8,996,463 Issues |
| 2016-02-16 | U.S. Patent No. 9,262,462 Issues |
| 2017-06-20 | Priority Date for ’868 Patent |
| 2018-07-24 | U.S. Patent No. 10,031,956 Issues |
| 2020-12-15 | U.S. Patent No. 10,866,868 Issues |
| 2021-01-01 | Defendant FerretDB Inc. launched |
| 2023-11-03 | Plaintiff sends first pre-suit letter to Defendant |
| 2023-11-29 | Plaintiff sends second pre-suit letter to Defendant |
| 2024-04-16 | Defendant responds to Plaintiff's letters |
| 2025-01-23 | Defendant releases FerretDB version 2.0 |
| 2025-05-16 | Plaintiff sends third pre-suit letter, including claim charts |
| 2025-05-23 | Complaint Filed |
II. Technology and Patent(s)-in-Suit Analysis
U.S. Patent No. 8,996,463 - "Aggregation Framework System Architecture and Method," Issued March 31, 2015
The Invention Explained
- Problem Addressed: The patent's background section describes the difficulty and inefficiency of performing complex data aggregation operations (such as "group by" or "join" queries from relational databases) in non-relational database models due to their lack of a rigid, homogeneous structure (Compl. ¶67; ’463 Patent, col. 1:52-62).
- The Patented Solution: The invention provides an "aggregation framework" that processes a sequence of data operations as a pipeline. An "aggregation engine" analyzes the entire sequence to determine optimizations—such as re-ordering operations or reducing the amount of data retrieved—before execution. This framework allows for efficient, complex data analysis on non-relational data structures (’463 Patent, Abstract; col. 3:13-33).
- Technical Importance: The framework introduced a method to perform sophisticated data analytics on NoSQL databases with improved performance and reduced query complexity (Compl. ¶67).
Key Claims at a Glance
- The complaint asserts infringement of at least independent Claim 1 (Compl. ¶69).
- Essential elements of Claim 1 include:
- A method for executing aggregation operations in a non-relational architecture.
- Receiving database requests at a database routing system and routing them to database access managers.
- Identifying an aggregation operation with multiple data operations via an aggregation engine.
- Determining, by the aggregation engine, an optimization for the execution of the aggregation operation.
- Modifying the data operations to optimize execution.
- Communicating the optimized aggregation operation for execution.
- The complaint does not explicitly reserve the right to assert dependent claims for this patent.
U.S. Patent No. 9,262,462 - "Aggregation Framework System Architecture and Method," Issued February 16, 2016
The Invention Explained
- Problem Addressed: This patent, a continuation of the application leading to the ’463 Patent, further addresses aggregation challenges in non-relational databases, specifically the problems caused by documents containing nested arrays, which can make conventional aggregation expressions produce unpredictable or inaccurate results (’462 Patent, col. 2:20-28).
- The Patented Solution: The invention introduces a specific optimization method involving "flattening" the data. An "unwind" operation is described that transforms a single document containing an array into multiple new, "flattened" documents, one for each element in the original array. This creates a simplified data set upon which aggregation expressions can be executed consistently and efficiently (’462 Patent, Abstract; col. 2:34-51).
- Technical Importance: The "flattening" technique provides a concrete solution for handling nested array data, a common and powerful feature of NoSQL databases that complicates traditional data analysis (Compl. ¶90).
Key Claims at a Glance
- The complaint asserts infringement of at least independent Claim 1 (Compl. ¶92).
- Essential elements of Claim 1 include:
- A method for consistent execution of aggregation expressions in a non-relational architecture.
- Determining an optimization for an aggregation operation and modifying the data operations accordingly.
- Identifying an aggregation expression and determining a set of responsive data objects.
- Flattening the data content within each data object based on a specified attribute, which includes generating a new data object for each data record within an array.
- Executing the aggregation expression against the flattened data content.
- The complaint does not explicitly reserve the right to assert dependent claims for this patent.
Multi-Patent Capsule: U.S. Patent No. 10,031,956
- Patent Identification: U.S. Patent No. 10,031,956, "Aggregation Framework System Architecture and Method," Issued July 24, 2018 (Compl. ¶110).
- Technology Synopsis: Continuing the work of the ’462 Patent, this patent is also directed to methods for optimizing aggregation operations in non-relational databases by "flattening" nested data structures. The invention addresses the problem of executing aggregation commands on complex data formats by creating a simplified, flattened data space prior to execution, thereby improving database functionality and efficiency (Compl. ¶112; ’956 Patent, Abstract).
- Asserted Claims: Independent Claim 1 (Compl. ¶113).
- Accused Features: The complaint alleges that FerretDB's aggregation commands, specifically its support for aggregation stages such as
$groupand$unwind, infringe this patent (Compl. ¶122).
Multi-Patent Capsule: U.S. Patent No. 10,866,868
- Patent Identification: U.S. Patent No. 10,866,868, "Systems and Methods for Optimization of Database Operations," Issued December 15, 2020 (Compl. ¶132).
- Technology Synopsis: This patent addresses the problem of failed write operations in a distributed database system. The invention describes a method to determine if a write operation failed due to a transient error (e.g., a network issue or temporary node unavailability) and then automatically re-execute the same write operation, a feature known as "retryable writes," which increases the reliability of the system (Compl. ¶134; ’868 Patent, Abstract).
- Asserted Claims: Independent Claim 12 (Compl. ¶135).
- Accused Features: The complaint alleges that FerretDB's distributed database system infringes by implementing a method of managing the database that includes determining write operation failures and triggering re-execution (Compl. Count 4, ¶¶131-151).
III. The Accused Instrumentality
Product Identification
The accused products are versions of the FerretDB database software, including those installed natively by users and those offered via the cloud (collectively, the "Accused Products") (Compl. ¶69).
Functionality and Market Context
The complaint alleges that FerretDB is marketed as a "drop-in replacement" for MongoDB and is designed to "mimic the behavior of MongoDB in every possible way" (Compl. ¶28, ¶33). The Accused Products allegedly perform data aggregation using functionalities described as "query pushdowns" and through commands or "stages" such as $group and $unwind (Compl. ¶77, ¶100). The complaint includes a screenshot from FerretDB's blog explaining its use of "SQL query pushdowns" as a method for "decreasing the data that we must fetch for every query" (Compl. p. 23). FerretDB is allegedly offered through various commercial partners and service providers (Compl. ¶82).
IV. Analysis of Infringement Allegations
8,996,463 Infringement Allegations
| Claim Element (from Independent Claim 1) | Alleged Infringing Functionality | Complaint Citation | Patent Citation |
|---|---|---|---|
| A computer implemented method for executing aggregation operations in a non-relational architecture, the method comprising the acts of | The Accused Products allegedly provide a method for executing aggregation operations in a non-relational architecture compatible with MongoDB (Compl. ¶70). | ¶70 | col. 3:46-50 |
| receiving, at database routing system, database requests from computer executed processes; routing, by the database routing system, the database requests to a plurality of database access managers... | The Accused Products operate in a distributed architecture where they necessarily receive and route database requests to the appropriate data management components (Compl. ¶70). | ¶70 | col. 3:51-54 |
| identifying, by an aggregation engine, an aggregation operation including a plurality of data operations; | The Accused Products identify and process aggregation operations submitted by users (Compl. ¶76). | ¶76 | col. 3:55-58 |
| determining, by the aggregation engine, an optimization for execution of the aggregation operation; modifying, by the aggregation engine, the plurality of data operations to optimize execution; | FerretDB's "query pushdowns" are alleged to be an optimization that decreases the data fetched for a query, thereby modifying the data operations to optimize execution (Compl. ¶77). | ¶77 | col. 4:26-31 |
| communicating, by the aggregation engine, the aggregation operation having at least one optimization for execution. | FerretDB's system communicates and executes the optimized operation using query pushdowns (Compl. ¶77). | ¶77 | col. 4:32-35 |
- Identified Points of Contention:
- Scope Questions: A central question may be whether FerretDB's "query pushdown" feature, which filters data at a storage layer, meets the claim limitations of "determining... an optimization" and "modifying... the plurality of data operations" as performed by an "aggregation engine." The defense could argue that its architecture and optimization method are technically distinct from what is described and claimed in the patent.
- Technical Questions: The analysis may focus on whether the FerretDB architecture contains a component or set of distributed software modules that function as the claimed "aggregation engine," or if the optimization is an inherent function of its query translator that does not meet the structural or functional requirements of the claim.
9,262,462 Infringement Allegations
| Claim Element (from Independent Claim 1) | Alleged Infringing Functionality | Complaint Citation | Patent Citation |
|---|---|---|---|
| A computer implemented method for consistent execution of aggregation expressions, in a non-relational architecture... | The Accused Products allegedly provide a method for executing aggregation expressions in a non-relational architecture (Compl. ¶93). | ¶93 | col. 10:55-58 |
| determining, by a computer system, an optimization for execution of an aggregation operation... modifying, by the computer system, the plurality of data operations to optimize execution; | The Accused Products support aggregation stages like $group which the complaint alleges are optimization operations (Compl. ¶100). |
¶100 | col. 10:59-63 |
| flattening, by the computer system, data content stored within each data object based on a specified attribute, wherein the act of flattening includes generating a new data object for each respective data record, stored within an array... | FerretDB's $unwind aggregation stage is alleged to perform this flattening by deconstructing a document's array field and returning a separate document for each element (Compl. ¶100). A screenshot from FerretDB's documentation lists the $unwind stage (Compl. p. 30). |
¶100 | col. 2:34-51 |
| executing, by the computer system, the aggregation expression against the flattened data content. | After using $unwind, the Accused Products execute subsequent aggregation expressions (e.g., $group) against the resulting flattened data (Compl. ¶100). |
¶100 | col. 2:48-51 |
- Identified Points of Contention:
- Scope Questions: The dispute may turn on whether the term "flattening" as defined in the claim—specifically the step of "generating a new data object for each respective data record"—is literally met by the operation of FerretDB's
$unwindcommand. - Technical Questions: What evidence does the complaint provide that the accused
$unwindfeature generates distinct "new data objects" as required by the claim, versus merely creating a transient, in-memory representation of the deconstructed data for processing? The precise technical implementation of$unwindwill be a key factual question.
- Scope Questions: The dispute may turn on whether the term "flattening" as defined in the claim—specifically the step of "generating a new data object for each respective data record"—is literally met by the operation of FerretDB's
V. Key Claim Terms for Construction
The Term: "aggregation engine" (from ’463 Patent, Claim 1)
- Context and Importance: This term defines the central component alleged to perform the claimed optimization. The infringement analysis for the ’463 Patent depends on whether FerretDB’s architecture includes a component or combination of components that meet this definition. Practitioners may focus on whether this term requires a single, discrete software module or can be read more broadly on a set of distributed, interacting functions.
- Intrinsic Evidence for Interpretation:
- Evidence for a Broader Interpretation: The specification describes the engine functionally, stating it can be "configured to parse the operation to determine if any optimization of the aggregation operation is appropriate" (’463 Patent, col. 16:45-49), which may support a definition based on function rather than specific structure.
- Evidence for a Narrower Interpretation: Figure 3 of the patent depicts the "Aggregation Engine 302" as a distinct architectural block with specific internal functions, which may support a narrower construction requiring a more defined, structural component (’463 Patent, Fig. 3).
The Term: "flattening" (from ’462 Patent, Claim 1)
- Context and Importance: This term is the core of the asserted invention in the ’462 Patent. Infringement hinges on whether FerretDB's
$unwindfunctionality performs the claimed "flattening." - Intrinsic Evidence for Interpretation:
- Evidence for a Broader Interpretation: The patent summary describes the concept functionally as an "unwind operation" that can "generate a plurality of flattened documents from any document containing arrays of data" (’462 Patent, col. 2:39-43), suggesting a focus on the outcome rather than the precise mechanism.
- Evidence for a Narrower Interpretation: Claim 1 itself provides a specific definition: "wherein the act of flattening includes generating a new data object for each respective data record... matching the specified attribute." A party could argue that this language requires the creation of persistent or semi-persistent new data objects, not just a transient processing stream, thereby narrowing the claim's scope.
VI. Other Allegations
Indirect Infringement
The complaint alleges inducement of infringement, stating that Defendant provides instructions and documentation on its websites that encourage and instruct users on how to use the accused aggregation functionalities in an infringing manner (Compl. ¶73, ¶76, ¶99). It also alleges contributory infringement on the basis that the Accused Products are not staple articles of commerce and are especially designed to perform the claimed aggregation operations (Compl. ¶79, ¶101).
Willful Infringement
The complaint alleges willful infringement based on Defendant's alleged pre-suit knowledge of the Asserted Patents. This knowledge is purportedly established by three letters sent to FerretDB, dated November 3, 2023, November 29, 2023, and May 16, 2025, the last of which allegedly included claim charts detailing the infringement (Compl. ¶83, ¶105, ¶127, ¶148).
VII. Analyst’s Conclusion: Key Questions for the Case
- A core issue will be one of definitional scope: can terms rooted in the patents’ specific architecture, such as "aggregation engine" and the multi-step definition of "flattening," be construed to cover the accused functionality in the FerretDB product, which is designed to act as a compatibility layer over different database backends?
- A key evidentiary question will be one of technical implementation: what is the actual mechanism by which FerretDB's "query pushdown" and
$unwindfeatures operate? The case may turn on whether these features are functionally equivalent to the claimed methods or if they represent a fundamentally different technical approach to achieving a similar result.