We recently covered how The New York Times Games team moved their server infrastructure to Google App Engine from Amazon Web Service. When we started building software on App Engine, we found we did not need our existing server, gizmo, because App Engine automatically provides more than half of gizmo’s server functionality. To keep a similar structure but strip out all the unneeded tooling, we built and open sourced Marvin.

Illustration by Kevin Zweerink for The New York Times

Marvin provides common tools and structure for services being built on Google App Engine by leaning heavily on go-kit libraries. The service interface in Marvin is very similar to the service interface in gizmo so software can look the same, but use vasty different styles of infrastructure.

To show off how easy it is to compose a service using Google Cloud Platform’s abstractions with Marvin, we’ve created an example service that allows a user to save, retrieve and delete an www.nytimes.com article URLs via Google OAuth and Google Cloud Datastore: https://github.com/NYTimes/marvin/tree/master/examples/reading-list#the-reading-list-example

We’re open sourcing this project to not only aid the community, but to also ask the community to help make Marvin better. If you are interested in helping out, please feel free to contribute or reach out in the #marvin channel in the Gopher Slack Community.