Successfully reported this slideshow.
You’ve unlocked unlimited downloads on SlideShare!
• Most lightweight way to store something
in the ZODB
• Extremely fast!
Same presentation table
• Table(Container) - application instance
• rows = OOBTree()
• TableRow(Persistent) - application data
• sort and filter for sorting and filtering
• DX item containing a few fields, used as data in
• Requirements grew from tens of items to
• Managed in bulk through a custom upload view.
• ~1s / item update; ~10m for an average update.
• Actually thought about using async jobs!!!
• New class extending Persistent
• Fields as attributes
• Stored in BTrees
• <1s to update 10000 items!!
• MUCH faster!!
• Reduced stack complexity - no more async.
• Reduced resource usage - no more wasted
• Easier to test.
• Non-Plone people can work on it!
• No OOB permission checks - have to make sure
that returned data should be accessible to the
• No content management - have to implement
• No workflows, versioning, content rules, etc..
• Basically, not a content type!
AND THAT’S A GOOD
• Not all applications should follow this pattern.
• In this case, the requirements were better
served this way.