Architecture Design Discussion

Advanced English listening exercise · Dev Team Meetings

Transcript

[Tech Lead] We need to decide on the architecture for the notification system. I've outlined two approaches — microservice or extending the monolith. [Senior Dev] I'm leaning toward a microservice. Notifications have very different scaling requirements than our main application. [Junior Dev] Can you explain what you mean by scaling requirements? [Senior Dev] Sure. During a sale event, we might need to send millions of push notifications in minutes. That kind of burst traffic shouldn't affect our main application's performance. [Tech Lead] Good point. But a microservice adds operational complexity — a separate deployment pipeline, monitoring, and inter-service communication. [Senior Dev] True. I'd suggest using a message queue like RabbitMQ between the main app and the notification service. The main app publishes events, and the notification service processes them asynchronously. [Junior Dev] What about data consistency? If the main database has user preferences for notifications, how does the microservice access them? [Tech Lead] We could use an API call or replicate the preferences into the notification service's own database. I'd prefer the API approach to maintain a single source of truth. [Senior Dev] Agreed. And for the notification service itself, I'd recommend using Node.js since it handles concurrent I/O operations efficiently. [Tech Lead] Let's go with the microservice approach. I'll create the architecture decision record. Let's plan for a proof of concept next sprint to validate our assumptions.

Comprehension questions

  1. Why does the senior dev prefer a microservice?
  2. What is a "single source of truth"?
  3. What is the purpose of the notification system architecture discussion?
  4. What does the Senior Dev suggest to handle burst traffic during events?
  5. Why does the Senior Dev recommend Node.js for the notification service?

More Dev Team Meetings exercises