Path: csiph.com!aioe.org!.POSTED.pSIhBT/1qYVsnIrIlldmdQ.user.gioia.aioe.org!not-for-mail From: Pankaj Jangid Newsgroups: comp.databases.postgresql Subject: Application architecture for multi-site manufacturing Date: Mon, 19 Aug 2019 17:14:38 +0530 Organization: Aioe.org NNTP Server Lines: 46 Message-ID: NNTP-Posting-Host: pSIhBT/1qYVsnIrIlldmdQ.user.gioia.aioe.org Mime-Version: 1.0 Content-Type: text/plain X-Complaints-To: abuse@aioe.org User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.2 (darwin) X-Notice: Filtered by postfilter v. 0.9.2 Cancel-Lock: sha1:xEe2kZfUDWYAVvniJEeiAY0a2mU= Xref: csiph.com comp.databases.postgresql:872 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. # The Application Each manufacturing unit produces its own data and is totally unrelated to the data from other sites. I have tried to repeatedly ask the site owners whether this will remain the case in future or it might change. I gave them examples that a part manufactured in one unit is used in other modules produced in a different unit. As of now they are saying that this case won't occur. But I want to take care of this if they come up with this sort of change 3-4 years after implementation. Now the scenarios is like this: Manufacturing units: A, B, C Nodes at unit A: NA1, NA2, NA3, ..., NA100 Nodes at unit B: NB1, NB2, NB3, ..., NB100 Nodes at unit C: NC1, NC2, NC3, ..., NC100 At the hardware-level, I am thinking of this architecture: Each node at a unit connects to local in-memory Redis cache. Redis nodes are configured as slaves and a master node sits centrally at the manufacturing unit. An application will keep on clearing stale data from the master Redis and push it to a PostgreSQL running at the site. I also plan to keep a replication server also for PostgreSQL at each site. The company CXOs want to view consolidated data also. So I want to connect all these units via some sort of mechanism provided by PostgreSQL. For example partitioning. 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. Regards. -- Pankaj Planet Earth.