WIP: Scaleout plugin

* Enables clients to enable scale out groups to be used for routing

* Enables servers to enlist in a ScaleOut group

#### Things left to do

- [ ] Add support for the gracefull shutdown call back (depends on the core pull)
- [ ] Cache the SC routing table for X seconds
- [ ] How do we acceptance test this?
- [ ] Should we perform retries when we startup and SC isn't responding? 
- [ ] Move the SC api url config to a common `.ServiceConntrolUrl(...)` config call and by default read `AppSettings["ServiceControl/ApiUrl"]`
- [ ] Document the public api on docs.particular.net
>No need to use another json lib, we can use the one in the core

Disagree. We are currently using json.net in the core and we wan't to move
away from that ,https://github.com/Particular/NServiceBus/issues/2460,
therefor we should not add more dependencies to the core json serializer

On Thu, Nov 20, 2014 at 6:30 AM, John Simons <notifications@github.com>
wrote:

> In src/ServiceControl.Plugin.ScaleOut/ClientSide/ScaleOutGroupRouter.cs:
>
> > +                address = routes[index];
> > +
> > +                index++;
> > +            }
> > +
> > +            return true;
> > +        }
> > +
> > +        string[] GetRoutes(string scaleOutGroup)
> > +        {
> > +
> > +            using (var client = new WebClient())
> > +            {
> > +                var content = client.DownloadString(apiUrl + "/routes/" + scaleOutGroup);
> > +
> > +                return SimpleJson.DeserializeObject<string[]>(content);
>
> No need to use another json lib, we can use the one in the core
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/Particular/ServiceControl.Plugins.v5/pull/1/files#r20628271>
> .
>