
Show HN: Microphone – Self-Announcing .NET Services on Top of Consul - RogerAlsing
https://github.com/rogeralsing/Microphone
======
tirus
Really cool to see another library using the Consul library I wrote! Thanks
for posting this.

~~~
RogerAlsing
And thank you for making the Consul.NET lib :-) I found a few of those but
your were the most complete

------
aashishkoirala
Looks like Consul is trying to fill the gap until Service Fabric comes out,
but might be moot after it does. [https://azure.microsoft.com/en-
us/campaigns/service-fabric/](https://azure.microsoft.com/en-
us/campaigns/service-fabric/)

------
polskibus
Can someone describe what is Consul and why would anyone need this library on
top of it? What problems is it solving (in comparison with WCF or plain
WebAPI?).

~~~
SideburnsOfDoom
I'm no expert, but.

Consul is this:
[https://www.consul.io/intro/index.html](https://www.consul.io/intro/index.html)

As you can see it does service discovery, health checking and configuration
management. As I understand it, this is useful to automate if you run lots of
small web services on AWS, azure, your own data-centre or elsewhere in "the
cloud" and so have to configure lots of transient machines, find each other,
have them register with load-balancers or get taken down if they fail, etc.

You'd need a library in on top of consul in this case since the makers,
hashicorp don't work in .Net, and there will be a gap connecting it to
existing .Net web frameworks such as WebApi and NancyFx.

So it's not solving the same problem as WebAPI at all, it's there to help you
manage WebApi at scale. Extra need if you can claim the buzzword
"microservices".

How well does consul work, and what does it give you that AWS or Azure does
not? When exactly would you benefit from it? I'd like to know, actually.

~~~
whatnotests
Works great. We have several services (rails and Python) that use consul in
AWS for service discovery and as a shared key/value store for some types of
configuration.

You could do the service discovery part with tags, and use S3 or dynamo db for
the config part instead of using consul.

Since we develop locally on a small collection of VMs we prefer consul instead
(no aws tags on our local vagrant VMs!).

Check out the diplomat gem
([https://github.com/WeAreFarmGeek/diplomat](https://github.com/WeAreFarmGeek/diplomat))
and these others for Python: \- [https://github.com/cablehead/python-
consul](https://github.com/cablehead/python-consul) \-
[https://github.com/gmr/consulate](https://github.com/gmr/consulate)

