ZEO 5 does not enable async apps
Jim Fulton <[email protected]>
| Newsgroups | gmane.comp.web.zope.zodb |
|---|---|
| Message-ID | <CAPDm-FggKFg6Prb_aSQq8rTVDvDgotXMHBCFq9CqrSVbz-4-FA@mail.gmail.com> |
There's a common misconception that ZEO 5 enables async apps. Nothing could be further from the trust. Excuse me for shouting. ZEO 5 HAS NOTHING TO DO WITH ASYNCHRONOUS APPS!!! OK, now, everyone repeat after me... ZEO (and Zope for that matter) has always used an asynchronous networking library. The asynchronous approach makes a lot of sense for networking (although maybe not as much sense as you might think, which is why the server uses a thread for each client). ZODB is an *object-oriented database*. It provides transparent persistence. It is fundamentally at odds with asynchronous programming. IMO asynchronous programming is a terrible model for application programming. I think it made sense in browsers (to an extent, for a counter example, look at IndexedDB), but I think people will eventually figure out that it's a dead end on servers. The Actor model, which has been around since the 90's is a better general-purpose, concurrency tool. It's used prominently in Erlang, Go, Akka (Scala/Java) and is supported in Python (threads/processes and queues). (It also doesn't solve every problem.) If you insist on getting your async on, I suggest looking at gevent (which is really synchronous). It's been used successfully with ZODB and Zope. Jim -- Jim Fulton http://jimfulton.info -- 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.