HNHacker News
TopNewBestAskShowJobs

tylerflint

147 karma · joined May 20, 2011

submissionscomments
tylerflint··on A distributed, tag-based pub-sub service for modern web applications
Yeah we hear ya. The nanopack cloud-initiative was just announced last friday (https://blog.nanobox.io/nanopack-a-new-vision-for-automated-...). We're getting there slowly but surely!
tylerflint··on A distributed, tag-based pub-sub service for modern web applications
Oh I see. Sorry for the confusion. The initial need was for a rails app to send data model updates to dashboard clients. Later, as our infrastructure became more micro-service-oriented, mist has been used as a place for the dashboard javascript client to subscribe to a centralized event queue. Each micro-service will publish messages to the mist cluster, and the dashboard can respond accordingly.
tylerflint··on A distributed, tag-based pub-sub service for modern web applications
This is referring to messaging being sent through mist. Mist doesn't care what the data looks like, and won't transform it.

Currently the public-facing websocket client is not allowed to publish messages until this is mitigated, as you mentioned. Any feedback here would be appreciated.

tylerflint··on A distributed, tag-based pub-sub service for modern web applications
So to the first question, there's not a transactional layer to guarantee the client handled the message. Once a message is sent to the client, it is assumed the client has a mechanism for queuing messages if it can't keep up.

As to the second, the caveat is basically saying that if a message is broadcast and nobody cares about the message (ie: there aren't any subscriptions) then mist isn't going to store the message anywhere, it just gets dropped.

tylerflint··on A distributed, tag-based pub-sub service for modern web applications
Also, if your network can't natively support multicast, you might want to check out red (https://github.com/nanopack/red) "A fast, in-kernel, ad-hoc point-to-point vxlan network."
tylerflint··on A distributed, tag-based pub-sub service for modern web applications
When a node is brought online, it uses multicast discovery to learn about other nodes. You can see the gist here: https://github.com/nanopack/mist/blob/master/main.go#L68-L76

Propagating events is really simple: When a client subscribes to a particular node, the node will replicate the subscription to all nodes in the cluster, and relay any messages from the 'proxied' subscriptions back to the client.

tylerflint··on A distributed, tag-based pub-sub service for modern web applications
Also to clarify (and yes I also work at Pagoda Box on the Nanobox project), this service was initially intended to provide push capabilities for rails and other web frameworks that can't natively provide a push socket layer. It has successfully filled that niche and has expanded to fill other needs as well.
tylerflint··on Heroku2scalingo: migrate from Heroku to Scalingo in a minute
How do you keep containers isolated?

Do you just run multiple docker containers from different apps on the same host?

Do you provide any sort of network isolation between apps?

tylerflint··on Closing a door
> We are human. We make mistakes, and we correct them. We get frustrated with someone, we over-react, and then we apologize and try to work together towards a solution.

Wisdom.

← PreviousPage 2 of 2