changes in 2 separate services - sometimes doubles the work ▸ No clear service ownership - difficult to make architecture decisions - “a camel is a horse designed by a committee" ▸ No clear bugs ownership
changes in 2 separate services - sometimes doubles the work ▸ No clear service ownership - difficult to make architecture decisions - “a camel is a horse designed by a committee" ▸ No clear bugs ownership
many features were not crossing all technologies ▸ we ended up as two teams in a single team: android and backend ▸ teams were not oriented around business case
many features were not crossing all technologies ▸ we ended up as two teams in a single team: android and backend ▸ teams were not oriented around business case
upfront architecture as possible ▸ subsystems communicate with each other over RabbitMQ ▸ databases are not shared between services ▸ avoid cascading synchronous communication in user flow ▸ keep it simple on every level
development 2. Continuous delivery platform is a must 3. Horizontal components do not get along with vertical teams 4. monitoring is essential 5. stable teams and ownership matter 6/. teams built around features are fast 6. modular architecture matters 7. there is always a monolith. embrace it