Quiz: Architecture Decision Scenarios
Make the Call
Architecture is not about knowing patterns -- it is about knowing when to apply them. Each scenario below presents a real constraint. Your job: choose the approach that best fits the constraints, not the one that sounds most impressive.
No trick questions. Every option is something a reasonable engineer might choose. The correct answer depends on the specific constraints described.
Scenario 1: The Growing Startup
Your startup has 12 frontend engineers, one React app with 180 components, and a components/, hooks/, utils/ folder structure. Engineers frequently cannot find related files, and merge conflicts in shared utility files are a daily occurrence.
Scenario 2: The API Dilemma
Your team is building a dashboard that shows user profile, course progress, recent activity, and personalized recommendations. The backend is a Python Django API returning REST endpoints. Each section requires a separate API call, and the mobile team has asked for a different data shape for their smaller screens.
Scenario 3: The Testing Nightmare
Your app directly imports Stripe, Mixpanel, and Auth0 SDKs in 60+ components. Unit tests take 3 minutes because every test file mocks these SDKs with jest.mock(). When Mixpanel updated their SDK, 40 tests broke because the mock interfaces were wrong.
Scenario 4: The Data Fetching Waterfall
Your course page loads in 3 seconds. The network tab shows: GET /course (400ms) then GET /course/topics (400ms) then GET /course/progress (400ms) -- a sequential waterfall. All three calls are independent.
Scenario 5: The Monorepo Decision
Your company has a marketing site (Next.js), a web app (Next.js), an admin dashboard (Next.js), and a shared component library. Currently in four separate repos. Updating a shared Button requires 4 PRs and a week of coordination. The team is 20 engineers.
Scenario 6: The Micro-frontend Question
Your e-commerce company has grown to 60 frontend engineers across 8 teams. Each team owns a user journey (search, product page, cart, checkout, account, recommendations, admin, seller tools). Teams step on each other constantly, and the CI pipeline takes 45 minutes because the entire monolith is rebuilt on every PR.
Scenario 7: The Type Safety Gap
Your React frontend calls a Go backend via REST. API responses are typed with hand-written TypeScript interfaces that have drifted from the actual backend responses, causing runtime errors. The backend team maintains an OpenAPI spec that is mostly up to date.
Scenario 8: The State Management Debate
A new project uses Next.js 15 with App Router. The team is debating between Redux Toolkit, Zustand, Jotai, and "no state library." The app has: authentication, theme preference, course filter/sort/search, and quiz state (in-progress answers, timer).
Scenario 9: The Dependency Lock-in
Your app uses Firebase for auth, Firestore for database, Firebase Analytics, Firebase Hosting, and Firebase Cloud Messaging. Every feature directly imports Firebase SDKs. The CTO wants to evaluate moving to Supabase for cost reasons.
Scenario 10: The Architecture Decision Record
Your team debated for two hours about whether to use Server Actions or a REST API for form mutations. You chose Server Actions. Three months later, a senior engineer joins and immediately suggests switching to REST because "Server Actions have limitations."