## mDNS discovery engine

mDNS is a discovery protocol designed by Apple in 2002. It uses UDP multicasting to send on the network service
announcements which can be used by other devices/services to connect or access servers without the need for any
configuration, it was initially developed for printers and similar devices.

### Limitations

Due to the nature of UDP broadcasts/multicasts, they can only be transfered on Level 2 LAN networks. That mean that
any higher kind of network won't be able to see/transmit those packets, and the discovery will fail. Amazon EC2 is an
example of network that will not work with mDNS even when using Amazon VPC.

### Configuration

In the `server.serviceDiscovery.options` object the following options exists:
 - __description__: A string that allows you to override the service name generated by the engine. It needs to be
   unique on the network!

### Debugging

When announcing with mDNS, there are several tools that allows seeing the network topography in great details, metadata
included:

 - __Linux__: `avahi-discover` will discover the whole network, clicking on services will display the metadata at the
   bottom of the screen.
 - __macOS__: [BonjourBrowser](http://www.tildesoft.com/) will do that for you.
 - __Windows__: `Bonjour Browser for Windows` should do that for you.



