{"action":"created","issue":{"url":"https://api.github.com/repos/nats-io/pure-ruby-nats/issues/9","repository_url":"https://api.github.com/repos/nats-io/pure-ruby-nats","labels_url":"https://api.github.com/repos/nats-io/pure-ruby-nats/issues/9/labels{/name}","comments_url":"https://api.github.com/repos/nats-io/pure-ruby-nats/issues/9/comments","events_url":"https://api.github.com/repos/nats-io/pure-ruby-nats/issues/9/events","html_url":"https://github.com/nats-io/pure-ruby-nats/issues/9","id":198892054,"number":9,"title":"updating the server list","user":{"login":"ripienaar","id":82342,"avatar_url":"https://avatars.githubusercontent.com/u/82342?v=3","gravatar_id":"","url":"https://api.github.com/users/ripienaar","html_url":"https://github.com/ripienaar","followers_url":"https://api.github.com/users/ripienaar/followers","following_url":"https://api.github.com/users/ripienaar/following{/other_user}","gists_url":"https://api.github.com/users/ripienaar/gists{/gist_id}","starred_url":"https://api.github.com/users/ripienaar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ripienaar/subscriptions","organizations_url":"https://api.github.com/users/ripienaar/orgs","repos_url":"https://api.github.com/users/ripienaar/repos","events_url":"https://api.github.com/users/ripienaar/events{/privacy}","received_events_url":"https://api.github.com/users/ripienaar/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2017-01-05T07:24:03Z","updated_at":"2017-02-17T08:22:34Z","closed_at":null,"body":"When there are long running NATS clients you might have the environment change underneath you, like say perhaps the client is fed with data from SRV records or some other non DNS based service discovery method like consul, etcd or whatever\r\n\r\nThe retry logic of this client is great because I can tell it to retry infinitely and it will deal with complexities of resubscribing on reconnect etc, so I like infinite retries\r\n\r\nProblem is once I kick the client off with such an infinite retry setting I never have an option to update the server list it should use on subsequent retries.\r\n\r\nNow I could adjust the Client#server_pool from my side but at present of course there is no concurrency mutexes or anything like that around that array so it would be a terrible idea.\r\n\r\nThe NATS server publishing feature is nice on paper but in reality I find it not that useful, it publishes private IPs that arent reachable from outside NAT etcetc so there's some issues still and anyway sysadmins like to manage their connection pools more explicitly I found\r\n\r\nDo you have thoughts on how we might handle this situation?  A way to update the Client#server_pool that's safe while having infinite retries set on the client gem would be great but open to other approaches you can think of."},"comment":{"url":"https://api.github.com/repos/nats-io/pure-ruby-nats/issues/comments/280585343","html_url":"https://github.com/nats-io/pure-ruby-nats/issues/9#issuecomment-280585343","issue_url":"https://api.github.com/repos/nats-io/pure-ruby-nats/issues/9","id":280585343,"user":{"login":"ripienaar","id":82342,"avatar_url":"https://avatars.githubusercontent.com/u/82342?v=3","gravatar_id":"","url":"https://api.github.com/users/ripienaar","html_url":"https://github.com/ripienaar","followers_url":"https://api.github.com/users/ripienaar/followers","following_url":"https://api.github.com/users/ripienaar/following{/other_user}","gists_url":"https://api.github.com/users/ripienaar/gists{/gist_id}","starred_url":"https://api.github.com/users/ripienaar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ripienaar/subscriptions","organizations_url":"https://api.github.com/users/ripienaar/orgs","repos_url":"https://api.github.com/users/ripienaar/repos","events_url":"https://api.github.com/users/ripienaar/events{/privacy}","received_events_url":"https://api.github.com/users/ripienaar/received_events","type":"User","site_admin":false},"created_at":"2017-02-17T08:22:34Z","updated_at":"2017-02-17T08:22:34Z","body":"@wallyqs any ideas on this one?"}}
{"actor":{"display_login":"ripienaar"}}