Zeoserver eggs and conflict resolution

plone.recipe.zeoserver has an eggs directive that can be configured to add available modules to the zeoserver so that it can use conflict resolution provided by the product. The docs says:

Set if you need to include other packages as eggs e.g. for making application code available on the ZEO server side for performing conflict resolution (through the _p_resolveConflict() handler).

The advice that I have read is to add buildout eggs to zeoserver eggs:

eggs = xxx
recipe = plone.recipe.zeoserver
eggs = ${buildout:eggs}

I got an error running the zeoserver after the buildout because zc.zrs was now missing from the zeoserver script and I was using it in my configuration. This made me curious if there are many packages that use _p_resolveConflict() handler. I grepped through omelette but only the packages:


had it. The recipe already provides the above modules in the default zeoserver script generated. Does this mean there is no advantage to linking other modules to the zeoserver?


I think you are misinterpreting the docs.

The conflict resolution is only an example (e.g.) of why you might want to add 'client' side modules/eggs also to the zeo package. They 'could' provide extra routines for conflict resolution. I've been working with Plone for 18 years now and I have never found any reference in add'on code ord docs where an extra conflict resolution piece of code was present.

zc.zrs is Zope replication services and extends a ZODB to replicate all changes to the storeage to a secondary ZODB for (for example) high availability scenarios.

Thank you for the explanation.

I will no longer add additional eggs since the default recipe already provides those that are needed.

Plone Foundation Code of Conduct