19 votes
Accepted

How do I write tests against an eventually consistent service?

Consider non-functional requirements when designing your functional tests -- if your service has a non-functional requirement of "Consistent within x (seconds/minutes/etc)", simply run the PUT ...
Dan Ambrogio's user avatar
8 votes

How do I write tests against an eventually consistent service?

You really want your tests to be fast and consistent. If you start creating tests that may occasionally fail due to eventual consistency, you'll ignore the test when it fails, and then what use is it? ...
Jonathan Giddy's user avatar
8 votes

How do I write tests against an eventually consistent service?

OK, so. "What Are You Testing" is the key question. I am testing my internal logic of what happens assuming the google stuff works In this case you should mock the google services and always return ...
Ewan's user avatar
  • 74.6k
3 votes
Accepted

How to keep state alive between deployments

The trick is to not keep any session state within the stuff you redeploy. Instead: keep state in a separate database that persists beyond a deployment, or keep state purely client-side. Where a web ...
amon's user avatar
  • 134k
3 votes

Using NGINX as proxy for dynamic content

Just my two cents, but can't you just: point mydomain.com to your wordpress server/cluster point app.mydomain.com to your GAE app Most domain registrars enable you to do this pretty easely. Why put ...
dagnelies's user avatar
  • 5,455
2 votes

Serving images from google cloud resized to 300x200

The easiest way to do this is to have Google Cloud Storage resize the image on the fly for you by creating the magic URLs you noticed. See here for Python and here for Java; no server-side processing ...
Will Hayworth's user avatar
2 votes
Accepted

Should I add fields or use inheritence in this case?

I would choose inheritance. Since you don't need to create a different advertising model for cars then using a child class will help this Ad class from getting anymore confusing. From what I see in ...
Yuli Gartner's user avatar
2 votes

Google Search: Results Ordered by Relational Position in Texts

OK I'm giving this a shot. Your question seems to boil down to: "How could you write a search engine which puts emphasis on results where search terms appear close together in searched ...
Ewan's user avatar
  • 74.6k
1 vote
Accepted

Thoughts of Google Cloud App Engine Reliability

If you need high availability where one minute of downtime is not acceptable a single cloud provider is not enough. You need multiple providers to have high availability at that level, even then it's ...
Ryathal's user avatar
  • 13.4k
1 vote
Accepted

Would it work to use http patch more general and even "unpatch"?

Is it a good idea to make http patch more general and also create a new property or even a new persistent entity if it does not exist. HTTP Patch is already sufficiently general to describe these two ...
VoiceOfUnreason's user avatar
1 vote
Accepted

What types of Google Cloud application should I consider for something running as a continually available service that subscribes to a pub/sub?

In general GAE apps are intended to run as web services, in the sense that they're waiting for HTTP(S) requests and perform actions in response to them. While it might be possible to have them ...
Dan Cornilescu's user avatar
1 vote

Should I add fields or use inheritence in this case?

I suggest using decoration instead (not Python's decorators, but the Decorator design pattern), or just delegation. Otherwise, you'll eventually reach a point where the inheritance levels are so deep ...
Jesus Alonso Abad's user avatar
1 vote

Recommended way to organize and build multiple services for App Engine Flexible Environment with custom runtime

Copying my answer to a question on Stack Overflow https://stackoverflow.com/questions/49388615/multiple-services-with-different-dockerfiles-on-gae-flexible/58119935#58119935 tl;dr: build a separate ...
Julian Orinyol's user avatar
1 vote
Accepted

Communicating with third party API

So if I understand correctly the difference between the 2 solutions is really just in serving the 1st page if the external API is down: solution 1 is serving a generic (thus potentially useless) page ...
Dan Cornilescu's user avatar
1 vote

How do I write tests against an eventually consistent service?

A service such as Google App Engine Datastore is based upon data replication across several globally spread points of presence (POP). Any integration test for an eventually consistent service is ...
Rami Kuttaineh's user avatar
1 vote

What does it mean to "expose" something?

Unfortunately, that's not what "expose" means in regular English. A typical definition of "expose" is "to remove what is covering something so that it can be seen." That ...
Paul's user avatar
  • 9
1 vote

How do I write tests against an eventually consistent service?

One approach, which is nice in theory but might not always be practical, is to make all write operations in the system under test idempotent. That means, assuming your test code tests things in a ...
Robin Green's user avatar
  • 1,253
1 vote
Accepted

Complexity limits of solutions created in Google Spreadsheets

Bad idea. Google Sheets should be considered as disposable software: Google can (and has) changed the internal workings on a fairly frequent basis. You can have something abruptly stop working. ...
Sherwood Botsford's user avatar
1 vote

What happens differently when you add a task Asynchronously on GAE?

The async version is simply not blocking the calling thread until the result of the task enqueuing RPC is available. This allows performing other operations before eventually blocking waiting for the ...
Dan Cornilescu's user avatar

Only top scored, non community-wiki answers of a minimum length are eligible