← Atlassian Interview Insights

Atlassian·Software Engineer·Onsite - System Design / Architecture·Senior

Senior
Jun 2026

Summary

System design round at Atlassian for a software engineer role. The main question was a deep architecture comparison for a music streaming service, which sounds niche but actually covers a lot of ground fast.

Questions Asked (1)

Q1

For a music streaming service, compare a single-server monolithic deployment against a horizontally distributed multi-host setup. Walk through throughput limits, fault tolerance, global latency, state and data management, deployment complexity, cost scaling, and how you'd migrate between the two. Finish with a recommendation based on listener scale.

System DesignTechnical Trade-offsData Modeling
Author's notes

This one sprawled in a way I wasn't ready for.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

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.

1. Define the dimensions and baseline

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).

2. Analyze monolithic deployment

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.

3. Analyze distributed multi-host setup

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.

4. Compare and contrast trade-offs

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).

5. Recommendation and migration strategy

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.

Key Points to Mention

  • Throughput limits: vertical scaling ceiling vs. horizontal scaling with load balancers and auto-scaling groups.
  • Fault tolerance: single point of failure vs. redundancy, replication, and graceful degradation.
  • Global latency: single region vs. multi-region deployment with CDNs and edge caching for audio streams.
  • State and data management: local state vs. distributed databases, caching layers (Redis), and eventual consistency.
  • Deployment complexity: simple single-server deployment vs. container orchestration (Kubernetes), service mesh, and CI/CD pipelines.
  • Cost scaling: fixed hardware cost vs. pay-as-you-go cloud instances, and the impact of data transfer and storage costs.
  • Migration strategy: strangler pattern, database replication, blue-green deployment, and feature flags to transition gradually.

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.