# Microservices (Node.js / NestJS) > Monolith vs modular monolith vs microservices, message patterns, transporters (TCP, Redis, NATS, RabbitMQ, Kafka), giao tiếp (sync/async, event-driven), CQRS, event sourcing, client/server - 30 câu hỏi phỏng vấn - Senior - [Câu hỏi phỏng vấn: Node.js / NestJS](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van.md) ## 1. Modular monolith là gì? **Câu trả lời** Modular monolith là một ứng dụng được deploy như một đơn vị duy nhất nhưng được cấu trúc thành các module được tách rời mạnh mẽ với các boundaries rõ ràng. Khác với monolith cổ điển nơi mọi thứ trộn lẫn, modular monolith tổ chức code thành các module độc lập giao tiếp qua các interface được định nghĩa rõ ràng. Cách tiếp cận này kết hợp sự đơn giản của monolith (deploy duy nhất, transaction ACID đơn giản) với khả năng bảo trì của microservices (tách biệt trách nhiệm, boundaries rõ ràng). ## 2. Sự khác biệt chính giữa monolith và microservices là gì? **Câu trả lời** Sự khác biệt chính nằm ở deployment và tính độc lập: monolith được deploy như một đơn vị duy nhất nơi tất cả thành phần chia sẻ cùng một process và database, trong khi microservices là các service độc lập được deploy riêng biệt với database riêng. Monolith mang lại sự đơn giản và transaction ACID dễ dàng nhưng gặp vấn đề về khả năng mở rộng và bảo trì ở quy mô lớn. Microservices cho phép mở rộng độc lập và deploy tự chủ nhưng đưa vào sự phức tạp phân tán. ## 3. Message pattern trong NestJS Microservices là gì? **Câu trả lời** Message pattern trong NestJS định nghĩa chế độ giao tiếp giữa các microservices. Có hai loại chính: request-response (đồng bộ với phản hồi được mong đợi) và event-based (bất đồng bộ không chờ phản hồi). Decorator @MessagePattern() định nghĩa handler cho request-response, trong khi @EventPattern() xử lý các event bất đồng bộ. Việc chọn pattern phụ thuộc vào trường hợp sử dụng: request-response cho các thao tác cần phản hồi tức thì, event-based cho thông báo và eventual consistency. ## Còn 27 câu hỏi nữa - Vai trò của transporter trong NestJS Microservices là gì? - Sự khác biệt giữa @MessagePattern() và @EventPattern() là gì? Đăng ký miễn phí: https://sharpskill.dev/vi/login ## Các chủ đề phỏng vấn Node.js / NestJS khác - [Kiến thức cơ bản về Node.js](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/nodejs-fundamentals.md): 20 câu hỏi, Junior - [API lõi Node.js](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/nodejs-core-apis.md): 25 câu hỏi, Junior - [Lập trình bất đồng bộ](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/asynchronous-programming.md): 25 câu hỏi, Junior - [Cơ bản về Express.js](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/express-basics.md): 20 câu hỏi, Junior - [Nền tảng NestJS](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/nestjs-fundamentals.md): 23 câu hỏi, Junior - [Thiết kế REST API](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/rest-api-design.md): 20 câu hỏi, Junior - [Validation và DTO](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/validation-dto.md): 20 câu hỏi, Junior - [Tài liệu API & Hợp đồng](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/api-documentation.md): 20 câu hỏi, Junior - [Xử lý lỗi](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/error-handling.md): 20 câu hỏi, Junior - [Kiểm thử đơn vị](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/testing-unit.md): 20 câu hỏi, Junior - [Lập lịch tác vụ](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/scheduling-cron.md): 15 câu hỏi, Junior - [Module và DI trong NestJS](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/nestjs-modules-di.md): 20 câu hỏi, Mid-Level - [Cấu hình & Quản lý môi trường](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/configuration-environment.md): 20 câu hỏi, Mid-Level - [Xác thực JWT](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/authentication-jwt.md): 25 câu hỏi, Mid-Level - [Phân quyền và RBAC](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/authorization-rbac.md): 20 câu hỏi, Mid-Level - [Cơ sở dữ liệu với TypeORM](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/database-typeorm.md): 30 câu hỏi, Mid-Level - [Prisma ORM](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/prisma-orm.md): 25 câu hỏi, Mid-Level - [Middleware và Interceptor](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/middleware-interceptors.md): 20 câu hỏi, Mid-Level - [Tải lên tệp](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/file-upload.md): 15 câu hỏi, Mid-Level - [WebSockets](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/websockets.md): 20 câu hỏi, Mid-Level - [GraphQL với NestJS](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/graphql-basics.md): 25 câu hỏi, Mid-Level - [Kiểm thử End-to-End](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/testing-e2e.md): 20 câu hỏi, Mid-Level - [Caching với Redis](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/caching-redis.md): 20 câu hỏi, Mid-Level - [Hàng đợi với Bull](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/queues-bull.md): 20 câu hỏi, Mid-Level - [DevOps, Logging & CI/CD](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/logging-monitoring.md): 25 câu hỏi, Mid-Level - [Docker & Đóng gói container](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/docker-containerization.md): 25 câu hỏi, Mid-Level - [Các phương pháp bảo mật tốt nhất](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/security-best-practices.md): 25 câu hỏi, Senior - [Hiệu năng và triển khai Cloud](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/performance-optimization.md): 30 câu hỏi, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/microservices