WAMP is currently a draft spec submitted to the W3C and IETF.
At it’s most basic, it implements PubSub and Routed RPC over WebSocket or any reliable, duplexed and order guaranteed transport.
I came across the protocol a few weeks ago, and was immediately intrigued. I feel like I’ve been building systems to emulate this protocol for the last 10 years. Initially with Python, gevent and zeromq. My next iteration was Elixir/Nerves, MQTT and WebSockets. And my current implementation is Elixir, GraphQL and NATS. All have been trying to achieve the same thing. Realtime RPC and PubSub. So to say I was excited to come across a semi-official protocol is an under statement. Also not sure how I hadn’t come across it before.
But the client situation for Erlang and Elixir leaves much to be desired. So what better way to learn a new protocol then to write your own client software! I put together an Elixir version called WAMPex that implements the Basic Profile. You can check it out here. There’s also an accompanying example app that emulates a SmartHome and Analytics Backend, https://gitlab.com/entropealabs/wampex_example_app
If people are building similar systems, I’m wondering what you’ve chosen for your tech stack, and what your use-cases are. I’m pretty excited to build some awesome platforms with my new found favorite protocol