mwitkow
Since the simulation is inherently dynamic, and the number of Workers can change, Thanos helps us with achieving the necessary scale and retention for a hosted platform that is SpatialOS.
The reason why we built Thanos was to enable monitoring of large scale simulation systems, which are inherently stateful, such as the Survival demo (link https://youtu.be/lGWON5TtS04).
If you hit any snafus, please file bug reports in https://github.com/improbable-eng/grpc-web We're happy to help :)
What we're replacing with gRPC is usage of REST (URL-encoded resources) + JSON for application APIs, not really Web-resources.
What we found is that gRPC is really good at capturing both a resource-oriented API (we use similar conventions to Google's excellent API Design handbook https://cloud.google.com/apis/design/resource_names#resource...) and imperative ones. The major difference we no longer have a weird POST method with `/books/do_recalculation` that breaks the RESTfulness of the API.
This has been the way we've been shipping our REST services until now, but the need to recompile the proxy was a major hinderence to our development speed. Hence gRPC-Web implementation.
Our experience of using gRPC in Java, C++ and Golang is pretty good. While it had some initial teething issues (when it was first released), the libraries have generally been a non-issue since the gRPC General Availability (GA-1.0 version).
If you're considering using it in Go, check out the https://github.com/grpc-ecosystem/go-grpc-middleware helper libraries that we've contributed back to gRPC Ecosystem.
This is indeed our own implementation of the pending spec. We are in touch with the gRPC team to make sure that their (still unreleased) implementation is cross-tested with ours.
The benefit of our implementaiton is a relatively light-weight client-side lib for Typescript and >=ES5, and a "ready-to-go" Go middleware.
The key feature of the stack is that you can integrate various Workers to act together, leveraging existing game engines in multiple languages. Checkout https://spatialos.improbable.io/docs/reference/9.0-alpha/wor... if you're interested in trying to port your stuff onto our stack.
If you're interested, we also went to CoreOS Fest Berlin this year, where I presented how we dynamically reconfigure our SpatialOS simulations and our Platform microservices: https://youtu.be/zo_Hv0WyNTo?list=PLlh6TqkU8kg_3FpXLlHMnoVqK...