I encountered the strangest thing just now:
I tried to put an entity into Cloud Datastore. The entity didn't reach the database, but it DOES return when searching for it by index.
I mean:
Select * from EntityType -> Doesn't return the row (although other rows return)
Select * from EntityType where entityName = "xxx" -> DOES return the row (which didn't return in the previous query)
EDIT:
Both queries still return inconsistent result even over an hour after the Put()
This is a classic example of eventual consistency - while the Entity is synchronously written and is guaranteed to be consistent for lookups, the indexes of the entity including the Kind index are updated asynchronously.
Normally this is resolved in milliseconds, but in rare situations it could extend to seconds or even an hour.