← Atlassian Interview Insights
This one sprawled in a way I wasn't ready for.
Structure your answer by systematically comparing the two architectures across the seven dimensions, using a music streaming service as the context. For each dimension, highlight trade-offs and how they affect listener experience and operational overhead. Conclude with a clear recommendation that ties the choice to listener scale, showing awareness of when each architecture is appropriate.
Pro tip: Emphasize that the decision is not binary; many successful services start monolithic and evolve. Discuss how you would design the monolith to be 'distributed-ready' (e.g., stateless services, externalized state) to ease future migration.
Briefly define each comparison dimension (throughput, fault tolerance, latency, state, deployment, cost, migration) and state assumptions about the service (e.g., audio streaming, user data, playlists).
For each dimension, describe how a single-server monolith behaves: limited vertical scaling, single point of failure, high latency for global users, local state management, simple deployment, and cost that scales with hardware upgrades.
For each dimension, describe how a horizontally distributed system behaves: high throughput via horizontal scaling, fault tolerance through redundancy, low latency via CDNs and edge servers, distributed state (e.g., sharded databases, caches), complex deployment (orchestration, service discovery), and cost that scales with instance count.
Directly compare the two approaches, highlighting scenarios where each excels and the trade-offs involved (e.g., monolith for simplicity and low initial cost, distributed for scale and resilience).
Provide a recommendation based on listener scale (e.g., monolith for <100k users, distributed for millions), and outline a migration path (e.g., extract services, introduce load balancers, shard databases) with minimal downtime.
AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.