Conflict: Architecture Disagreement

Example Conflict Resolution transcript covering Conflict Resolution, Architecture, Microservices, Monolith, Leadership — interview practice material from GitGrilled.

Example Conversation

Interviewer
Two senior engineers on your team disagree on the architecture for a new feature. One wants microservices, the other wants a monolith. How do you resolve this?
Candidate
I'd start by getting both perspectives on the table in a structured way. I'd ask each engineer to write a one-page RFC comparing pros and cons. Specifically: deployment complexity, development speed, scalability, team autonomy, and debugging difficulty. Then I'd facilitate a discussion where we separate facts from opinions. What's the actual traffic? What's the team's deployment maturity? Do we have the operational experience for microservices? If the team is 3-4 people, I'd lean monolith. A team that small doesn't benefit from the decoupling of microservices but pays all the operational cost. We can always extract services later as the team grows. But if there's a clear scaling requirement that forces microservices (different data stores, independent deploy cadences), I'd make that case with data. Either way, the decision should be documented. And whoever's approach we don't pick should be assigned a critical component of the chosen approach so they have ownership.
Interviewer
What if the microservices advocate is very senior and threatens to leave if we don't go their way?
Candidate
I'd take that seriously but not let it drive the decision. I'd have a private conversation: 'I value your expertise and I want you to be excited about the architecture. But the decision needs to be what's best for the team and the product, not what any individual prefers.' I'd offer a compromise: we start with a modular monolith (clear module boundaries, separate packages), with the explicit intention of extracting services as we grow. This gives them the well-structured codebase they want without the operational overhead. In 6 months, if we need to split, the module boundaries are already there. If they're still unhappy, that's a sign that this might not be a technical disagreement but a values mismatch. I'd explore that directly.