roundRobin.coffee

satellite = require '../../satellite'

the connect middleware to distribute requests in a round-robin fashion

exports.strategy = (req, res, next) ->
  satellite.store.addresses.get (addresses) ->
    satellite.store.targetAddressIndex.get (number) ->
      newAddress = addresses[number]
      satellite.store.targetAddress.set newAddress, (res) ->
        if number is addresses.length-1
          satellite.store.targetAddressIndex.reset (res) ->
            next()
        else
          satellite.store.targetAddressIndex.increment (res) ->
            next()