A large part of the vert.x architecture is around the message bus, and message passing between verticals. The main idea I guess being that I can create multiple modules (possibly in multiple languages) that communicate via JSON messages that are sent over a message bus (hazelcast).
I can imagine that building a message bus into the platform (vs. say, encouraging communication via JSON/REST APIs) encourages large applications, with loose coupling and isolation between modules.
And I guess that’s where I’m confused, because I don’t see how this is better than, for example a system where you have relatively small/simple services (“micro-services”) that communicate over HTTP via REST interfaces.
Am I missing something with respect to the benefits that Vert.x and it’s message passing bring to the table?
Motivation: I currently use node.js and think it’s an awesome platform (but I don’t like javascript the language so much), but I love clojure which recently got some Vert.x love, so I was checking Vert.x out.
1