Go Micro – A Go microservices development framework

  • mDNS is an interesting choice for service discovery. Neat idea for local development, but probably not great in production.

    I believe most cloud providers don't support multicast, meaning mDNS would not work there. It's also quite slow and/or very chatty in large networks.

    Looks there is support for other service discovery mechanisms via plugins, though.

  • This looks pretty new and under developed. In a world of service mesh proliferation not sure where this fits as there is some feature overlap.

    > PubSub is built in as a first class citizen for asynchronous communication and event driven architectures.

    Would be interested to see how this is implemented and what it’s consistency and reliability dynamics are.

  • Have care with using this. We were using it and repos were renamed and moved causing all sorts of issues.

  • Seems like a sort of light service mesh, but delivered from within the app, and very straightforward. I'll have to look at mDNS, had heard of it, but never read into it.

  • Probably mostly off-topic, but every time I see the words “Go” and “framework” together in a sentence, I can't help but chuckle. Go is, idiomatically, a very anti-framework and pro-library language. And I think that that's a good thing. The closest thing idiomatic Go has to frameworks are the stdlib's “interface packages” like package image or package database/sql/driver, which are amazing because they make it easier to create an actual ecosystem instead of a network of incompatible frameworks. Anyone who wants to create a “framework” for go should instead learn from those packages and try to define a set of interfaces which work together to achieve a goal.