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
- Why does the senior dev prefer a microservice?
- What is a "single source of truth"?
- What is the purpose of the notification system architecture discussion?
- What does the Senior Dev suggest to handle burst traffic during events?
- Why does the Senior Dev recommend Node.js for the notification service?