Three Approaches To Product Team Structure
A team that consists of individuals with broad skill sets and expertise is called the “generalist” one.
Such teams are usually responsible for the end-to-end development of the whole project or
individual feature. It’s the most common project team structure for outsourcing companies.
A “specialist” product team structure involves experts with super-specific skill sets who are proficient
in handling narrow tasks. Everyone is a pro in one’s niche and therefore is fully responsible for their
element of the project. Such an arrangement is also fairly common for software development teams.
A “hybrid” project team structure is basically a combination of generalists and specialists. Such
teams work on a project as a whole but they can narrow down their focus whenever necessary. The
hybrid approach is by far the best of both worlds.
Microservices Design Partern
● Can’t use ACID transactions between distributed systems
● The Database-per-Service Pattern
● The API Composition Pattern
● The Command Query Responsibility Segregation (CQRS) Pattern
● The Event Sourcing Pattern
● The Saga Pattern
○ Choreography - when exchanging events without points of control
○ Orchestration - when you have centralized controllers