I'm diving into system architecture and I'm curious about how developers typically set up large systems like ERP or business management tools. Specifically, I'm interested in understanding how different modules such as ordering, payment, and inventory interact with each other. What does the data flow look like, and how are these systems designed and connected in actual implementations?
4 Answers
Are you looking for how it's coded or more about the user experience? I might not be into the backend stuff, but I have over 14 years of experience with different ERP front-ends and databases, particularly SQL.
It's essential to establish a solid database schema from the start. Once everything is linked with foreign keys and software relies on certain structures, it becomes difficult to change. So, getting it right the first time is key!
Some systems operate with a single database supporting desktop or web UIs, and they can be either cloud-based or on-premises. Others are purely SaaS solutions with multiple databases.
In most modern setups, they often use a service-oriented or microservices architecture. Each module has its own API for handling data flow, allowing information to travel through events or message queues. For example, when inventory changes, it can emit an "item_stock_changed" event that other modules, like finance or sales, can pick up and react to.

I'm more focused on user interaction.