[Zope-dev] Product Data Storage

Andy Dawkins andyd@nipltd.com
Fri, 30 Jun 2000 10:11:53 +0100


I have an interesting issue which I don't think has been raised.  But
instead of solving the issue myself I thought I would share it with you
guys/gals and see what you think.

I am currently working on a Zope MailIn product, which allows you to send
emails directly in to Zope.
Version 0.1 can be found at:
http://www.zope.org/Members/NIP/ZMailIn

In version 0.2 I plan to have a ZMailIn python product which will handle the
Zope side of things and behave a bit like a client.  For example you could
add a ZMailIn product instance in to Zope and configure it to receive all
emails for bob@bobscompany.com and provide a method to execute upon mail
arrival.

This is great and you could have n ZMailIn product instances throughout your
Zope site and in any position.

When email arrives I need to find all the ZMailIn instances within the ZODB
and hand the email to the correct one.

I have decided AGAINST searching the ZODB for instances of ZMailIn because
that is just too scary, hideously inefficient and I don't want to go there.
Instead I thought of keeping an up-to-date list of where all the current
instances where held.  My original idea was to get the ZMailIn product to
write a file in to the /lib/python/Products/ZMailIn directory, which
shouldn't cause any problems that I can see.

However, It had occurred to me that with the current growth of Zope it was
going to become more popular that separate Zope instances of the same
product may need to share some data.

So my question is this:
What are peoples opinions on storing shared product data?  Where should it
be placed?  Should this ability be added to Zope as a standard?

Thanks in advance.
-Andy Dawkins
(New Information Paradigms Ltd)