I would like to create a Page Counter product that doesn't bloat. If a product is created that doesn't subclass History or UndoSupport does it still bloat?
those have nothing to do with the fact that every time that hit counter fires some object will get updated and thus saved again.
Zope is transactional, but products like ZLDAPConnection have the ability to be "non-transactional" what does this mean? Could I use this in my counter?
the meaning of transactional as employed by the ZLDAPConnection has nothing to do with your concern about ZODB bloat. the ZLDAPConnection tried (it never got successfully finished) to hook into the ZODB transaction machinery to make sure writes to LDAP only happen if the whole transaction was indeed successful. i personally don't see a way to completely avoid ZODB bloat with a counter product stored in the ZODB itself. IMHO it is inherently bad to use ZODB-based hit counters in general for that very reason. jens