Productivity stack: Play Framework on Google App Engine

My talk given on Polish Java User Group meetup about one of the most productive tandem in Java development.

The goal was to share my experience around productive environment one can discover when developing application with Play Framework and deploying them on Google App Engine.



Play Framework puts productivity in the first place. Java community praised it’s revolutionary, as on the time of first release, architecture: build in Netty server, lack of JEE servlet types, asynchronous and non-blocking communication.

Google App Engine is one of the first Platform As A Service available on the market for Java. It has numerous limitations but used wisely can provide a great advantage in productivity. Since Google has simplified it even more, there is now only one trier of servers to (auto)manage. And manage means here: configure scaling, defining max min number of nodes that should server user’s requests. To fully benefit from GAE autoscaling you will have to stick to share nothing architecture: no data sharing between nodes.

This combination plays nice, but this not without trade offs. The main bottleneck is servlet environment that has to be in use and wrap Play app. Play on GAE is not asynchronous any more. There is new environment on the horizon that may help (also to enable Play 2 on GAE): Flexible Environments.

    Main points included in presentation are:
  • App Engine intro, scaling & limitations
  • Play Framework stuff
  • GAE abstraction
  • How do this two things work together
  • Play 2 on GAE
  • Trade-offs

I would like to thank to Polish Java User Group for invitation and to the audience for constructive questions.


blog comments powered by Disqus