Title: Integrating NDB into gcloud.datastore? · Issue #557 · googleapis/google-cloud-python · GitHub
Open Graph Title: Integrating NDB into gcloud.datastore? · Issue #557 · googleapis/google-cloud-python
X Title: Integrating NDB into gcloud.datastore? · Issue #557 · googleapis/google-cloud-python
Description: Had a few discussions with @GoogleCloudPlatform/cloud-datastore (particularly @pcostell) so I wanted to summarize the things we covered. This issue is to clarify the goals for Datastore support in gcloud-python, and discuss and decide on...
Open Graph Description: Had a few discussions with @GoogleCloudPlatform/cloud-datastore (particularly @pcostell) so I wanted to summarize the things we covered. This issue is to clarify the goals for Datastore support in ...
X Description: Had a few discussions with @GoogleCloudPlatform/cloud-datastore (particularly @pcostell) so I wanted to summarize the things we covered. This issue is to clarify the goals for Datastore support in ...
Opengraph URL: https://github.com/googleapis/google-cloud-python/issues/557
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Integrating NDB into gcloud.datastore?","articleBody":"Had a few discussions with @GoogleCloudPlatform/cloud-datastore (particularly @pcostell) so I wanted to summarize the things we covered. This issue is to clarify the goals for Datastore support in gcloud-python, and discuss and decide on a course of action that everyone likes for how to reconcile what we have today with the other libraries out there.\n\n---\n### Current state of the world\n\nCurrently, I see two styles that people want to use when interacting with Datastore:\n1. a \"simple\" more key-value-based style (similar to Amazon's Simple DB) where you're CRUDding dictionaries and then adding some querying\n2. a more advanced ORM style where you're create models, and have some sort of schema defined in a Python file.\n\nFor the former, `gcloud.datastore` has had the goal of covering this use case. For the latter, `ndb` is the latest way (supported) way of doing this -- with others potentially existing, but `ndb` seems to be the clear leader.\n\nWe also have a unique situation where our code currently might have trouble running in App Engine -- whereas `ndb` can't run _outside_ of App Engine. The layout sort of looks like this:\n\n\n### Looking forward\n\nIf our goals are ....\n1. We agree that both styles of interacting with Datastore matter (and both should exist)\n2. `gcloud.datastore` and `ndb` are our choices for each style respectively\n3. `gcloud.datastore` and `ndb` should both run in App Engine _and_ non-App Engine runtimes\n4. `gcloud.datastore` is where all the recommended Python stuff to talk to Datastore should live (it is the \"official source of truth\")\n5. People who want to write new Python libraries for Datastore can rely on code that exists in `gcloud.datastore` (and set `gcloud` as a Python dependency)\n\n... then I'd like to suggest that we....\n1. Port `ndb` over as `gcloud.datastore.ndb` (bringing with it `datastore_rpc` and `datastore_query`)\n2. Rewrite `gcloud.datastore` to run on top of `datastore_query`\n3. Rename `gcloud.datastore` to be a peer with `ndb` (using \"simple\" in this diagram, not set on that at all though).\n\nwhich makes things look like this:\n\n\n\nWhat do you guys think?\n\n/cc @GoogleCloudPlatform/cloud-datastore @dhermes @tseaver @silvolu @proppy \n","author":{"url":"https://github.com/jgeewax","@type":"Person","name":"jgeewax"},"datePublished":"2015-01-16T16:52:22.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":43},"url":"https://github.com/557/google-cloud-python/issues/557"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:4589375b-95e5-bac6-baf2-f308a4b40622 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | 8874:D7451:FF34E1:159DC0C:6A4D6436 |
| html-safe-nonce | acc9591e56ed7de9187e39f37dccfd7ef244eff7d2762f16324fc22e4a120968 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI4ODc0OkQ3NDUxOkZGMzRFMToxNTlEQzBDOjZBNEQ2NDM2IiwidmlzaXRvcl9pZCI6IjIwODgwNTkwMTA1NTY5NzgyMzAiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ== |
| visitor-hmac | 27ca2af2a2664343193de05390ae69c7b61e63102859a91bc556bc979864d6c0 |
| hovercard-subject-tag | issue:54597589 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/googleapis/google-cloud-python/557/issue_layout |
| twitter:image | https://opengraph.githubassets.com/53958e5f4be9fec87db8bd5ae03a10b6c4b83406c8cda476cc4222e95fce6d29/googleapis/google-cloud-python/issues/557 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/53958e5f4be9fec87db8bd5ae03a10b6c4b83406c8cda476cc4222e95fce6d29/googleapis/google-cloud-python/issues/557 |
| og:image:alt | Had a few discussions with @GoogleCloudPlatform/cloud-datastore (particularly @pcostell) so I wanted to summarize the things we covered. This issue is to clarify the goals for Datastore support in ... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | jgeewax |
| hostname | github.com |
| expected-hostname | github.com |
| None | e6658d7c7808aeed776f841e0839b885fce343c9b96244be612c779298e7661e |
| turbo-cache-control | no-preview |
| go-import | github.com/googleapis/google-cloud-python git https://github.com/googleapis/google-cloud-python.git |
| octolytics-dimension-user_id | 16785467 |
| octolytics-dimension-user_login | googleapis |
| octolytics-dimension-repository_id | 16316451 |
| octolytics-dimension-repository_nwo | googleapis/google-cloud-python |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 16316451 |
| octolytics-dimension-repository_network_root_nwo | googleapis/google-cloud-python |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | a438513d3a22ffcd713795ed948c3e5525007665 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width