Telegraphy: Real-time events for WSGI Python applications
telegraphy.machinalis.comI think this link http://telegraphy.readthedocs.org/en/latest/intro.html is far more informative than op's. I had no idea what telegraphy was after reading the posted link.
Yeah the architecture diagram helps out a lot. The XML-RPC link from the app to the gateway seems a bit old-fashioned. Is that common in Django?
Not at all - I don't think I've ever seen XML-RPC used in a Django project or library. It's more common in the Twisted world though, and this project's default implementation uses Twisted.
This seems to really help bridge a gap in django's toolbox. Working with async actions with pretty much anything other than celery processes is pretty painful. That said I'm not sure I'm a huge fan of tying the events directly to the models, I think I'd rather be able to define the events separately and call the event-firing methods via on save / on delete model methods if I wanted to the model to fire events. Seems a lot more flexible to break that apart so I can reuse the events or fire those events from somewhere other the models if needed. I bet there is a way to do this already in the project I just haven't had enough time to piece it together yet.
D3f0: FYI, you're dead. No indication in your posting history as to why.
Sounds cool. I have also been thinking about developing a ready-made Django skeleton with an architecture similar to this. Our publishing looks like this: Django -> Redis -> Express.js -> Browser
Redis really just serves as our bridge, the actual pub/sub happens in socket.io in the express app. The coolest part of this is that when a Django model is updated, we serialize it to its API representation, send that through the wire. On the client, the Backbone model is bound to this event and updates in place.
Is there something like this for Rails?
Yeah I think so if I grok what this is doing...
One interesting approach I came across recently was: https://github.com/chrismccord/sync
Congratulations to my friends from machinalis for making it to the top of HN!