13 karma · joined April 25, 2021
protoforce.io has better modeling and implementation design, supports also 2-way communication, while remaining sane to read and debug.
/disclaimer: one of the authors
Ended up building protoforce.io for the very purpose. It does support typescript + nodejs, which we used for the website itself as well.
Java sdk is built on Futures, so somehow it's async as well.
Also we support server-to-client calls, which, effectively, are a better alternative to callbacks.
1. Scala, Typescript/Javascript, and Java at the moment.
2. It does provide the runtime which allows to bootstrap a server easily. (You can check out this post which has modeling + scala setup example at the bottom https://www.protoforce.io/ProtoForce/post/extensive-guide-to...)
3. Please take a look at the documentation, it has a good outline of the features supported. There are many features, most are well documented there.
4. No, not really. You can do with other languages, it provides both client & server sides, so no other language is needed. Again, you can still generate client side stuff for other languages and use them to connect to your server.
5. protoforce website was implemented using the protoforce DSL itself. The parser and transpilers are written in scala. The portal is written in typescript + react.
6. There is currently a sandbox at the website which you can experiment in. There is no currently integration with other IDEs, but language server can be added a bit later for VSCode for instance.
Hope this answers a bit :)
Good amazon opened up their stuff, there should be more competition on this front.
We build services and models using https://www.protoforce.io, which also auto-generates client and server side. Generally, it is impossible to generate good code using templates only, so it has to be transpiled.
I think from amazon's side it was coming sooner or later anyway, with the amount of APIs they have - it is inevitable. I just can't see how many teams you need to have to manage all of the client side code for many languages.