Designing a data-heavy enterprise application — Part 1