Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How light weighted Dexterity-base contenttype can be

I'm trying to write a light weight content type that work similar to Facebook's post.

  • The whole content schema is just a text field. There's no title, description.

  • It must be Contentish and is managed by CMFCore: It must have an FTI, a portaltype so that we can create/browse content through standard method; it is catalog-aware.

  • They will have relation/reference within each others.

  • The number of objects is gonna be huge, say 10-100M.

The most similar things to this is the comment object (plone.app.discussion). While I've looked through the plone.app.discussion, I found the content implementation is really complicated, with too much low level base classes. In most of the parts, I either don't understand it at all or it can't be reused outside the comment use case, and have little referenced/sample value to me.

So I want to ask is how much overhead it will be if I go the high level framework path compare to the low level one that plone.app.discussion went through ?

like image 783
quyetnd Avatar asked Feb 22 '23 17:02

quyetnd


2 Answers

I don't think p.a.discussion is right for you.

A Dexterity type may be fine, but you'll need to tune the performance. If performance is going to be an issue, it'll be because of the things that make types contentish (e.g. an FTI, the CMF base classes), so nothing will be lighter than Dexterity and meet your requirements, but you may want to think about whether you actually want to store everything in a relational database or something else instead. It shouldn't be strictly necessary, though.

Martin

like image 175
optilude Avatar answered Mar 07 '23 17:03

optilude


Plone will not scale to 10 M items in its catalogue (the largest I've heard of is something like 400 k). I would suggest building your application with a light weight framework like Pyramid.

like image 27
Laurence Rowe Avatar answered Mar 07 '23 17:03

Laurence Rowe