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.

Reply via email to