Firestore in Datastore mode is indeed recommended for databases that will be used primarily by App Engine apps. Firestore in Native mode could also be an interesting option to look into as it represents the next major version of Datastore. You can take a look at the differences here [1] and see what's most applicable for your use case. If you prioritize a feel closer to what you have been using over the additional features provided by Native mode, than Datastore mode may be more appropriate for your use case.
The Cloud NDB client library is meant to replace App Engine NDB for customers migrating projects/apps to Python 3. As explained in our documentation [2], this library will not support new features of Firestore in Datastore mode. As such, new apps/projects should use the Datastore mode client library [3] instead of Cloud NDB. Reading and writing data from Cloud NDB will allow your Python 2 and Python 3 apps to use the same databases, however the product managing those databases will now be Cloud Firestore in Datastore mode. Finally, products in Beta mode have usually spent 6 months in the Alpha phase where the majority of testing was done. Products in Beta are therefore generally more robust, publicly announced, and generally feature complete although this might change based on customer feedback. You can read more about the different phases here [4]. It is worth noting that SLAs do not apply for products in that phase, so you may verify the Firestore SLA [5] and see if you require it for your projects. If required, the Datastore mode Client Libraries [6] may be a better option as it is in GA phase. [1] https://cloud.google.com/datastore/docs/firestore-or-datastore [2] https://cloud.google.com/appengine/docs/standard/python3/migrating-to-cloud-ndb [3] https://cloud.google.com/datastore/docs/reference/libraries#client-libraries-usage-python [4] https://cloud.google.com/products/#product-launch-stages [5] https://cloud.google.com/firestore/sla [6] https://cloud.google.com/datastore/docs/reference/libraries#client-libraries-install-python On Wednesday, January 15, 2020 at 3:21:00 PM UTC-5, Joshua Smith wrote: > > I’ve been using AppEngine for about a decade, currently my apps are all > Python 2.7, Standard environment, google.appengine.ext.db > > I need to create a new app, so I figured it’s a good time to start > learning all the technologies that have replaced everything I’ve been using. > > I’m trying to understand what database technology I should use. Since I’m > eventually going to have to migrate all my existing apps to Python 3, I’d > like to use the database that is closest to what I’ve been using. > > From my reading of the docs, I think I can use “Cloud Firestore in > Datastore Mode” and interface to that using “Cloud NDB” which provides an > API very similar to “ndb” which is something I’ve never used, but looks > darn similar to “db”. > > Does that make sense? I see that there are “this is beta software” > warnings around the Cloud NDB part. Should I be worried about that? > > Since this is a new project, I don’t have any data migration to worry > about. But if I choose this path when porting an existing project, is the > underlying database the *same* database? Can I be reading and writing the > same datastore from a Python 2.7 google.appengine.ext.db app and a Python > 3.7 google.cloud.datastore app at the same time? > > -Joshua > > -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To unsubscribe from this group and stop receiving emails from it, send an email to google-appengine+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/google-appengine/aee16a09-25b0-42f0-8c55-da7b31e115e0%40googlegroups.com.