There is a lot you can do with 45 developers over five years. We build a distributed, modular ERP system. We also made a lot of mistakes, had great ideas, and drunk some beer in the mean time. This will be a list of things that we regret and are proud of. From business relations, through team leading and architecture down to code.
This is a story of building a big distributed, web-based, modular ERP system from scratch. First, we will look at the high-level architecture of the system, database servers, and teams. Then we go a bit deeper and discuss how we manage synchronous and asynchronous communication, modularity and data replication. Then I will explain why we created a custom DSL for view creation and how this allows us to change non-functional requirements without affecting the business code. Going deeper takes us into how we modeled such concepts as multi-language text and multi-currency amounts. Next part will be a recap:
- Why did we not use Angular?
- What are the pain points?
- What are we changing?
- What was the key to not failing?
- How some things can’t be done right from the start, and just need time?
- And the most important: If done again what would we change and what would we leave as it is?