function parseServers (rawRoutingTable, routerAddress) {
  try {
    let routers = []
    let readers = []
    let writers = []

    rawRoutingTable.servers.forEach(server => {
      const role = server.role
      const addresses = server.addresses

      if (role === 'ROUTE') {
        routers = parseArray(addresses).map(address =>
          ServerAddress.fromUrl(address)
        )
      } else if (role === 'WRITE') {
        writers = parseArray(addresses).map(address =>
          ServerAddress.fromUrl(address)
        )
      } else if (role === 'READ') {
        readers = parseArray(addresses).map(address =>
          ServerAddress.fromUrl(address)
        )
      }
    })

    return {
      routers,
      readers,
      writers
    }
  } catch (error) {
    throw newError(
      `Unable to parse servers entry from router ${routerAddress} from addresses:\n${json.stringify(
        rawRoutingTable.servers
      )}\nError message: ${error.message}`,
      PROTOCOL_ERROR
    )
  }
}
Parse server from the RawRoutingTable.

@param {RawRoutingTable} rawRoutingTable the raw routing table
@param {string} routerAddress the router address
@returns {Object} The object with the list of routers, readers and writers