[google-appengine] Re: Best practicies for making GAE microservices idempotent

2017-10-09 Thread Attila-Mihaly Balazs
Just a quick note: while GAE supports named tasks and transactional enqueuing of tasks, it does not support the transactional enqueing of named tasks. Just a small detail to be aware of when architecting your application. Attila -- You received this message because you are subscribed to the

Re: [google-appengine] Re: Best practicies for making GAE microservices idempotent

2017-10-09 Thread Jason Collins
Sorry, I don't have operational experience with Cloud Spanner. It didn't exist when Fantasm was written. On Monday, 9 October 2017 07:32:13 UTC-7, Nilson Pontello wrote: > > Thanks for the clarification, It looks like I will have to keep hitting > datastore for my use case. > > BTW: Can

Re: [google-appengine] Re: Best practicies for making GAE microservices idempotent

2017-10-09 Thread Nilson Pontello
Thanks for the clarification, It looks like I will have to keep hitting datastore for my use case. BTW: Can Fantasm benefit from making lock transactions using cloud spanner instead of datastore? or is datastore faster for small transactions like the ones

Re: [google-appengine] Re: Best practicies for making GAE microservices idempotent

2017-10-09 Thread Jason Collins
No. You can't make that assumption about task queue delivery, though it's very, very good. This is why Fantasm had to go the extra distance with Datastore transactions. BTW, Fantasm allows you to turn off the Datastore run-once check and rely solely on task queue because in practice, task queue

[google-appengine] Re: Best practicies for making GAE microservices idempotent

2017-10-09 Thread Nilson Pontello
Thanks Jason/George, My code does a job very similar to lock.py (this is what I am trying to avoid). So it looks like the secret is around task queues. Can I assume that enqueued tasks will be delivered *just once *(if my

[google-appengine] Re: Best practicies for making GAE microservices idempotent

2017-10-07 Thread Jason Collins
Fantasm! That's a blast from the past! I'm one of the original authors of that package. It does indeed help to make things idempotent, but at the end of the day, it relies on a datastore transaction (fronted by memcache for some performance gains):

[google-appengine] Re: Best practicies for making GAE microservices idempotent

2017-10-06 Thread 'George (Cloud Platform Support)' via Google App Engine
Hello Nilson, Among other sources, you may benefit from reading the "Implementing Workflows on Google App Engine with Fantasm" article . Fantasm is an excellent launch pad for building an understanding of how to decompose a workflow into