I really like Gary's suggestions here, which I'll paraphrase:
First create interfaces that content can be adapted to to get a UUID, so
other people can provide different implementations and those can
interoperate. Then, create default implementations that work however
Then if you, or one of your users want to use a different, or second
implementation, the migration will be much easier.
Senior Software Engineer
Zope3-users mailing list