Technical note
Multi-country ERP without duplicating codebase
Strategies to serve Argentina and Colombia from one platform with different business rules and a legacy codebase.
One product, two markets
ConsorcioAbierto (AR) and Properix (CO) share a platform but differ in regulations, currencies, expense flows, and bank reconciliations. Duplicating repos wasn't an option: maintenance cost would multiply.
Feature flags and market config
I separated what varies by country (tax rules, labels, validations) from what's core (condo model, funds, reconciliations). Market config in backend, Vue components conditioned by market context on frontend.
Performance in legacy
Reconciliation and funds modules handle high transaction volume. I optimized N+1 queries, added strategic indexes, and server-side pagination. Measure before optimizing: slow query log and basic APM guided where to invest time.
16 months in production
Balancing stability and feature velocity was key: strict code reviews on financial modules, incremental releases per market, and QA coordination on cross-border scenarios.
Takeaways
- Market config, not codebase forks
- Optimize queries where there's real traffic (reconciliation, funds)
- Reinforced code review on financial modules
- Features deployable per market independently