Re-architecting a system is wrought with problems:
* We almost always underestimate the difficulty of said task
* We almost never completely understand our customers’ needs
* The system almost always changes out from underneath us
However, what we can sometimes forget is the most important aspect of any project: the team! Your team, who miraculously survives these projects, has to continue to change with your business and your technology! But, don’t fret, we can architect our way towards this way of thinking! Let’s figure out how to be resilient and adaptive with the help of each and every team member. Ignore re-architecting your team at your own risk!
10. Single codebase
All computational logic are in-memory
Easy to scale horizontally
Handled by a central operations team
STORAGE &
RETRIEVAL
LOGICPRESENTATIONROUTING
Monorail MySQL
Many smaller, clearly scoped services
Single responsibility principle
Independently managed
Clear ownership for each service
STORAGE &
RETRIEVAL
LOGICPRESENTATIONROUTING
Redis
Memcache
Flock
T-Bird
MySQLTweet
User
Timeline
Social
Graph
DMs
API
Web
Monorail
TFE
21. Many smaller, clearly scoped services
Single responsibility principle
Independently managed
Clear ownership for each service
STORAGE &
RETRIEVAL
LOGICPRESENTATIONROUTING
Redis
Memcache
Flock
T-Bird
MySQLTweet
User
Timeline
Social
Graph
DMs
API
Web
Monorail
TFE
22. Any organization that designs a system (defined
more broadly here than just information
systems) will inevitably produce a design whose
structure is a copy of the organization's
communication structure.
Melvin Conway
23. If you have four developers writing a compiler
you will get a four-pass compiler.
Eric Raymond
24. Setting up the team says more about
architecture than the architecture itself.
Me
32. Single codebase
All computational logic are in-memory
Easy to scale horizontally
Handled by a central operations team
STORAGE &
RETRIEVAL
LOGICPRESENTATIONROUTING
Monorail MySQL
Many smaller, clearly scoped services
Single responsibility principle
Independently managed
Clear ownership for each service
STORAGE &
RETRIEVAL
LOGICPRESENTATIONROUTING
Redis
Memcache
Flock
T-Bird
MySQLTweet
User
Timeline
Social
Graph
DMs
API
Web
Monorail
TFE
Team
33. Many smaller, clearly scoped services
Single responsibility principle
Independently managed
Clear ownership for each service
STORAGE &
RETRIEVAL
LOGICPRESENTATIONROUTING
Redis
Memcache
Flock
T-Bird
MySQLTweet
User
Timeline
Social
Graph
DMs
API
Web
Monorail
TFE
teams
team
34. Ways must be found to reward design managers
for keeping their organizations lean and flexible.
There is need for a philosophy of system design
management which is not based on the
assumption that adding manpower simply adds
to productivity.
Melvin Conway
35. To solve technical problems, you often have to
go outside the technical domain.
Me
36. 0. It’s not all about the code!
1. Small teams can do big things.
2.
Full stack teams keeps your architecture
flexible.
3. Don’t fight Conway’s Law, work with it.
Me