Per Google's documentation, it seems like I have two main options for connecting to Datastore using Python: App Engine's NDB Datastore library, and the Google Cloud Datastore API for Python.
I'm currently on App Engine (Standard), but I'd like to structure my app such that it can grow beyond if required, likely via a move to Compute Engine. With that in mind, which library should I use? App engine's documentation states that NDB can be used, but it doesn't seem to be very actively developed anymore. At time of writing the last commit was over 6 months ago, though it seems they may have previously been planning some expansion. Will everything eventually switch to use the Google Cloud Datastore API instead? If NDB is being phased out, I really don't want to develop a dependency on it.
I haven't given it a shot yet, but it seems that using the full Google Cloud Datastore API in App Engine may come with its own issues.
If anyone has experience with using the Google Cloud Datastore API on App Engine - Standard, I'd be happy to hear your thoughts.
Edit - 2016-11-30 - Uniqueness
This question was flagged as being similar to this one. While there is some similarity, I specifically mentioned wanting to choose a solution that would allow for easy growth beyond App Engine. At this point I'm assuming that the NDB library only works on App Engine, so it wouldn't work if I move beyond App Engine. However, I recognise that there may still be advantages to using NDB while on App Engine and then swapping to Cloud Datastore API if I move beyond. Some relevant, more specific questions I have include:
- Are NDB and the Cloud Datastore API similar enough that moving from one to the other later on wouldn't be that problematic? Perhaps someone has done this and may have an opinion.
- Are there specific reasons that NDB really shines on App Engine? Performance?
- Since NDB uses the Cloud Datastore, should I be concerned that it will eventually discontinued? Google has brought App Engine closer and closer to the rest of the cloud computing lineup recently, and the fact that the NDB repo hasn't seen a lot of updating recently concerns me. Google does discontinue things from time to time.
Thanks.