Stefan Tilkov Track: Architectures evolution
3 layer architecture means nothing
- UI is not always helpful
- easy: don’t have to think
- 1 project == 1 system ? this is the worse approach
- architecture design is different from arbitrary system boundaries
Modularization and size
- SLOC grows when number of modules grows
- there’s a size limit to one application: split between different applications
- separate / redundant persistence
- internal separated logic
- domain model : implies strategies
- separated UI
- separate evolution
- autonomous operations
- limited interractions with other systems
Separate between different kind of architectures
Micro architecture (internal) VS Macro architecture (different systems)
Choice of different technologies leads to chaos ?
Rules and guidelines
Cross systems: decisions stuck with for a decade
- UI integration
- communication protocols
- data format
- logging, monitoring
Systems internals: will change in the future
- programmation languages
- dev tools
- process / workflow contros
- design patterns
- code guidelines
Don’t mix these two levels.
Objectives change over time: change decisions, separated systems.
- ease of development
- (support for) henerogeneity
It’s hard to convince people to do things “first” at the begining of the project (not right first time).
How to integrate systems ?
Data integration VS data replication : why is it good for me ? Each application comes with its database but there are dependancies between databases : data copy. Think of event notification
- think about the systems that make up your system
- separate macro/micro architectures
- address UI integration and SSO