I am designing an application for a manufacturing company. And I have
decided to go with an open source implementation from top to bottom. And obviously, PostgreSQL is one of the choices that I have made due to many reasons. Most important being its ability to handle large amounts of
data, speed, and reliability.
I want to get advice from the PostgreSQL community on this. I have not
done multi-site projects in the past. So before going ahead I want to
have advice on a reasonably futureproof architecture. Any help is appreciated.
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.
Apart from that, more experienced people might be available on
the mailinglist at https://lists.postgresql.org/. There is a lot
more conversation going on.
(*) It is more or less a reply to let you know that there is
at least one person who still reads this group.
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.
(*) It is more or less a reply to let you know that there is
at least one person who still reads this group.
I really appreciate your reply. Felt so lonely after posting my
query. Your reply is a hope.
Christian Barthel <bch@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.
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 429 |
Nodes: | 16 (2 / 14) |
Uptime: | 112:41:45 |
Calls: | 9,055 |
Calls today: | 2 |
Files: | 13,395 |
Messages: | 6,016,194 |