I'm starting a new microservices project and don't love the idea of running etcd or Zookeeper (or Consul, etc.) instances for service discovery. Most examples and projects I see tend to use these types of discovery services with micro services. To me it seems like a much better solution to use NATS with Queue Groups and simply throw the messages out there to get handled. The simplicity seems too good to be true. What am I missing? What do I get out of service discovery and direct connections to the microservice that I can't get by defining my subjects, publishing them, and just expecting someone to pick up that message and process it, possibly returning an answer? I want to make sure I can add new subscribers without modifying the publisher and basing my logic on service discover seems to kill that idea.
The project is your fairly run of the mill web application that has to collect user data, save it, trigger additional processes to work with the data, etc.