On Mon, 16 Sep 2019 02:02:01 +0530, Pankaj Jangid wrote:
> Christian Barthel <
b...@online.de> writes:
>
>> I can not comment much on the above because I do not have a lot
>> of experience with designing de-central, big systems(*). I would
>> try to find a simple way of dealing with the existing demands and
>> improve the existing solution incrementally. Is a Redis cache
>> really necessary? If you have a local copy of the data on each
>> site, the performance of PostgreSQL may be good enough? Can you
>> add performance improvements later? Can you make it modular and
>> extendable for future demands etc.
>>
>
> This is a really practicle advice. Thanks. Given the timeline of this
> project I wanted some suggestion to deal with the complexity. And this
> is really a breather. I can certainly apply incremental improvement.
You should be aware of the CAP theorem which says that you cannot have
consistency, availability and partition tolerance at the same time. You
can only have 2 of those things. Second, there is no need to re-invent
the wheel. There are open source ERP systems in the wild, like Dolibarr
or ERPNext. Since they are open source, you can use their data model to
build your own system, Business case for ERP software is usually
centralization of resource management and the savings that are the
result of central resource management. Your design choice of going
distributed seems to contradict the usual wisdom of centralizing the
ERP systems. I don't say that it cannot work, but it may prove
difficult.Last but not least: you should be aware that this is a
massive undertaking and that you will need many programmers to complete
the task. The only way to keep costs under control is to use Java ORM
and an application server. Many people know how to use Java and JBoss
and programmers are relatively easy to come by. All standard ORMs like
Hibernate, MyBatis and Apache Cayenne support PostgreSQL.
--
Mladen Gogala
Database Consultant
http://mgogala.byethost5.com