← Back to team overview

openerp-expert-framework team mailing list archive

Re: RFC: Multi-company vs multi-installation

 

I think that's a smart idea. It could be implemented as generic messaging system. You put hooks into "create", "write", "unlink" that serialize the object and a server-id info into a message and post in a queue. Other instances act as subscribers and would receive the message and execute the same method. With a good MQ server you can make it pretty reliable.

The user would only have to set what objects he wants to be replicated or not.

The obvious drawback is consolidation. You'd have to setup a "consolidation instance" that receives every single message (could really hurt performance) or do some magic with SQL replication.



On 21-02-2010 08:27, P. Christeas wrote:
Hello, I'd like your opinion on the following:

Currently, we're making some effort to integrate "multi-company" support in the
OpenERP addons.
This means that we're adding a 'company_id' field in many tables, and
subsequently extending the rules/clauses/logic to follow this company field.

I'd like to challenge that.
What is the purpose/vision of a multi-company installation? Obviously, one use
would be to have a unified db instance, which would serve a few "sibling"
companies.
But: what are the records/models/tables that these companies would have in
common? Do we have a chart of the things that will be common vs. the ones
(models) that will be shared? Which ones do have a strict rule on the company,
as opposed to allowing Null company for all of them?

Second: what are the performance implications of using this company_id field?
If the rule system have us join one more table, in so many places, wouldn't
that affect the server's response (considering that many OpenERP installations
will be for a single company) ? How can we make up for that? Could this code
turn into a no-op when not needed?

Third (only a remark) is that migration from 5.0 databases may get a little
hairy, if the company_id is not properly updated (has happened here). Please
check thoroughly that things work when using an old db.

That said, I would NOT wish to back off from the current multi-company
development, but just consider an alternative. I still appreciate the effort
done.

My counter-proposal (which, however, doesn't cancel the multi-company code)
would be to also put an effort into **B2B** instances of OpenERP.
That is, instead of cramming many companies into the same db, try to have a
solid framework of inter-operation between OpenERP instances. Let 2 or more
OpenERP dbs share their data through some communication channel.
I do know that this is not my idea, but has been started and worked upon by
others, already. Indeed, I support it and propose that it would be an
alternative to the multi-company case.

B2B links between OpenERP instances (= dbs) would bring a series of advantages
to OpenERP. It is a scalability solution, for one. It is also an added value
to the OpenERP project, because it could create a /network effect/ of OpenERP
installations.

Just make sure b2b works out of the box, with easy installation and minimal
administration.


My EUR 3M ;)





_______________________________________________
Mailing list: https://launchpad.net/~openerp-expert-framework
Post to     : openerp-expert-framework@xxxxxxxxxxxxxxxxxxx
Unsubscribe : https://launchpad.net/~openerp-expert-framework
More help   : https://help.launchpad.net/ListHelp




Follow ups

References