Firestore Datastore Mode for the PDE Exam

GCP Study Hub
619c7c8da6d7b95cf26f6f70
May 11, 2026

Firestore in Datastore mode is one of those Professional Data Engineer exam topics that looks like trivia until you hit a scenario question and realize the whole answer hinges on picking the right Firestore mode. Native mode and Datastore mode are not interchangeable, and the exam loves to test whether you understand why a team would choose one over the other. I want to walk through what Datastore mode actually is, what it gives up compared to native mode, and the workload signals that should push you toward it on exam day.

What Firestore in Datastore mode actually is

Datastore mode is a compatibility layer. It serves as a bridge between the legacy Google Cloud Datastore product and the newer Firestore product. When Google folded Datastore into Firestore, they did not want to force every existing Datastore customer to rewrite their applications, so they created a mode of Firestore that keeps the old Datastore API and the old data model intact while running on top of Firestore's modern infrastructure.

The practical implication is that a Datastore client library written years ago will continue to work against a Firestore database in Datastore mode without code changes. You get full backward compatibility with the legacy Datastore API, and you inherit the scalability and managed-service improvements that come with Firestore underneath. For the Professional Data Engineer exam, the trigger phrase is existing Datastore application. Whenever a scenario mentions a legacy App Engine workload or an application that already uses Datastore, Datastore mode is almost always the right answer.

The data model: kinds, entities, properties

Datastore mode keeps the entity-based data model that Datastore users are used to. This is different from Firestore native mode, which uses collections and documents.

  • Kind is the equivalent of a table or a class. It groups entities of the same type.
  • Entity is a single record. Each entity has a unique key and belongs to a kind.
  • Property is a named value on an entity, similar to a column on a row.

Native mode uses a different vocabulary. A collection holds documents, and each document holds named fields. Documents can also hold subcollections, which gives native mode a natural hierarchical structure that Datastore mode does not have in the same way. If you see kinds and entities in a question stem, the workload is Datastore mode. If you see collections and documents, the workload is native mode.

Strong consistency and high availability

Datastore mode keeps the strong consistency and high availability guarantees that made Datastore attractive in the first place. Queries return up-to-date results, and the service is regionally or multi-regionally replicated depending on how you set up the database. This is one place where native mode and Datastore mode are aligned. Both are strongly consistent, both are highly available, and both scale automatically without you provisioning instances.

What Datastore mode gives up

The headline tradeoff is real-time features. Native mode supports real-time listeners through the Firestore client SDKs, which let mobile and web apps subscribe to a document or query and receive push updates whenever the underlying data changes. Datastore mode does not have this. There are no real-time listeners, no offline data persistence in mobile SDKs, and none of the client-side features that make native mode a good fit for chat apps, collaborative editors, or live dashboards.

In exchange, Datastore mode is optimized for higher write throughput on server-side workloads. The legacy Datastore engine was built for high-volume backend traffic from App Engine apps, and Datastore mode inherits that profile. If a scenario describes a backend service writing at very high QPS without needing client subscriptions, Datastore mode is a defensible answer.

When to pick Datastore mode on the exam

The Professional Data Engineer exam framing is usually one of these:

  • A team has an existing App Engine application backed by Cloud Datastore and wants to keep operating without rewriting client code. Datastore mode is correct because it preserves the Datastore API and entity model.
  • A team is migrating off legacy Datastore but is not ready to refactor to native mode's collection and document model. Datastore mode lets them move onto Firestore infrastructure now and modernize the application later.
  • A backend service needs high write throughput against an entity model and does not need real-time client sync. Datastore mode fits.

For a brand new project with no Datastore history, native mode is the default recommendation. The exam aligns with that. If the scenario says "new application" with no legacy constraint, lean toward native mode unless there is a specific reason that points elsewhere.

A short exam checklist

  • Datastore mode uses kinds, entities, properties. Native mode uses collections, documents, fields.
  • Both modes are strongly consistent and highly available.
  • Datastore mode has no real-time listeners and no client SDK offline support.
  • Datastore mode is the answer for existing Datastore or App Engine applications and for high-throughput server-side workloads on the entity model.
  • Native mode is the default recommendation for new applications, especially mobile and web apps that benefit from real-time sync.
  • A single Firestore database picks one mode at creation time. You cannot switch modes later. If the wrong mode is chosen, the answer involves a new database.

That last point is worth committing to memory. The exam will sometimes hide the right answer behind a phrase like "create a new Firestore database in the appropriate mode" rather than offering an in-place migration that does not exist.

My Professional Data Engineer course covers Firestore native mode and Datastore mode side by side, plus every other storage decision the exam loves to test, so you can spot the trigger phrases and pick the right service under time pressure.

Get tips and updates from GCP Study Hub

arrow