Re: Applause for ZODB! And a question: How do you get pending change info from a transaction object?
Christopher Lozinski <[email protected]> Sat, 28 Apr 2018 07:55:50 +0200
| Newsgroups | gmane.comp.web.zope.zodb |
|---|---|
| Message-ID | <[email protected]> |
Thank you for that very positive message. How do you figure out which objects are changed in a transaction? Objects which have been changed have the _p_changed flag set to True. How do you distributed the information to multiple clients? I recommend MQTT.org, specifically Emitter.io. It is written in GoLang. Clients are available in all languages. MQTT supports Quality of Service. Fast, At least once, and exactly once. Tying it in with the ZODB transaction machinery would be hugely interesting to me. You could distribute all object id’s to all clients. But in practice every client is only going to be interested in changes to their branch of the tree. Think Chat rooms. Finance has their chat rooms, tech support has their chat rooms. People only want to subscribe to certain chat rooms. And they want security on their chat rooms. MQTT is great for that because it implements a tree of chat rooms, which maps onto the ZODB hierarchy very nicely. ZODB has a tree of objects, MQTT has a tree of topics. /path/to/the/topic/I/am/interested/in. So you publish on a topic, say for a specific chat room. Whoever wants to, can subscribe to events on that branch of the tree. It is my belief that ZODB and MQTT and (specifically Emitter.io) provide each other with complementary functionality. ZODB is great for web servers, MQTT for chat and real-time servers In the meantime, you may want to get started with the ZODB Demo. GitHub.com/pythonlinks/zodbdemo demo.pythonlinks.info user: admin login: admin You can learn more about it by watching the video at pythonlinks.info/zodb Warm Regards Christopher Lozinski -- You received this message because you are subscribed to the Google Groups "zodb" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.