
āđāļĄāđāļāļĢāđāļāļāļĢāđāļ§āļīāļŠ
Monolith vs modular monolith vs microservices, message patterns, transporters (TCP, Redis, NATS, RabbitMQ, Kafka), āļāļēāļĢāļŠāļ·āđāļāļŠāļēāļĢ (sync/async, event-driven), CQRS, event sourcing, client/server
1Modular monolith āļāļ·āļāļāļ°āđāļĢ?
Modular monolith āļāļ·āļāļāļ°āđāļĢ?
āļāļģāļāļāļ
Modular monolith āļāļ·āļāđāļāļāļāļĨāļīāđāļāļāļąāļāļāļĩāđ deploy āđāļāđāļāļŦāļāđāļ§āļĒāđāļāļĩāļĒāļ§āđāļāđāļĄāļĩāđāļāļĢāļāļŠāļĢāđāļēāļāđāļāđāļāđāļĄāļāļđāļĨāļāļĩāđ decoupled āļāļĒāđāļēāļāļāļąāļāđāļāļāļāļĢāđāļāļĄ boundaries āļāļĩāđāļāļąāļāđāļāļ āļāđāļēāļāļāļēāļ monolith āđāļāļāļāļąāđāļāđāļāļīāļĄāļāļĩāđāļāļļāļāļāļĒāđāļēāļāļāļ°āļāļāļāļąāļ modular monolith āļāļąāļāļĢāļ°āđāļāļĩāļĒāļāđāļāđāļāđāļāđāļāđāļĄāļāļđāļĨāļāļīāļŠāļĢāļ°āļāļĩāđāļŠāļ·āđāļāļŠāļēāļĢāļāđāļēāļ interface āļāļĩāđāļāļģāļŦāļāļāđāļ§āđāļāļĒāđāļēāļāļāļąāļāđāļāļ āđāļāļ§āļāļēāļāļāļĩāđāļāļŠāļēāļāļāļ§āļēāļĄāđāļĢāļĩāļĒāļāļāđāļēāļĒāļāļāļ monolith (deploy āđāļāļĩāļĒāļ§, transaction ACID āļāļĩāđāđāļĢāļĩāļĒāļāļāđāļēāļĒ) āđāļāđāļēāļāļąāļāļāļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļāđāļāļāļēāļĢāļāļģāļĢāļļāļāļĢāļąāļāļĐāļēāļāļāļ microservices (āļāļēāļĢāđāļĒāļāļāļ§āļēāļĄāļĢāļąāļāļāļīāļāļāļāļ, boundaries āļāļĩāđāļāļąāļāđāļāļ)
2āļāļ§āļēāļĄāđāļāļāļāđāļēāļāļŦāļĨāļąāļāļĢāļ°āļŦāļ§āđāļēāļ monolith āđāļĨāļ° microservices āļāļ·āļāļāļ°āđāļĢ?
āļāļ§āļēāļĄāđāļāļāļāđāļēāļāļŦāļĨāļąāļāļĢāļ°āļŦāļ§āđāļēāļ monolith āđāļĨāļ° microservices āļāļ·āļāļāļ°āđāļĢ?
āļāļģāļāļāļ
āļāļ§āļēāļĄāđāļāļāļāđāļēāļāļŦāļĨāļąāļāļāļĒāļđāđāļāļĩāđāļāļēāļĢ deploy āđāļĨāļ°āļāļ§āļēāļĄāđāļāđāļāļāļīāļŠāļĢāļ°: monolith āļāļđāļ deploy āđāļāđāļāļŦāļāđāļ§āļĒāđāļāļĩāļĒāļ§āļāļĩāđāļāļļāļāļāļāļĄāđāļāđāļāļāļāđāđāļāđ process āđāļĨāļ°āļāļēāļāļāđāļāļĄāļđāļĨāļĢāđāļ§āļĄāļāļąāļ āļāļāļ°āļāļĩāđ microservices āđāļāđāļāļāļĢāļīāļāļēāļĢāļāļīāļŠāļĢāļ°āļāļĩāđ deploy āđāļĒāļāļāļąāļāļāļĢāđāļāļĄāļāļēāļāļāđāļāļĄāļđāļĨāļāļāļāļāļąāļ§āđāļāļ monolith āđāļŦāđāļāļ§āļēāļĄāđāļĢāļĩāļĒāļāļāđāļēāļĒāđāļĨāļ° transaction ACID āļāļĩāđāļāđāļēāļĒ āđāļāđāđāļāļāļīāļāļāļąāļāļŦāļēāļāđāļēāļāļāļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļāđāļāļāļēāļĢāļāļĒāļēāļĒāđāļĨāļ°āļāļēāļĢāļāļģāļĢāļļāļāļĢāļąāļāļĐāļēāđāļāļĢāļ°āļāļąāļāđāļŦāļāđ microservices āļāđāļ§āļĒāđāļŦāđāļāļĒāļēāļĒāđāļāđāļāļĒāđāļēāļāļāļīāļŠāļĢāļ°āđāļĨāļ° deploy āđāļāļāļāļąāļāđāļāļĄāļąāļāļī āđāļāđāļāļģāļĄāļēāļāļķāđāļāļāļ§āļēāļĄāļāļąāļāļāđāļāļāđāļāļāļāļĢāļ°āļāļēāļĒ
3message pattern āđāļ NestJS Microservices āļāļ·āļāļāļ°āđāļĢ?
message pattern āđāļ NestJS Microservices āļāļ·āļāļāļ°āđāļĢ?
āļāļģāļāļāļ
message pattern āđāļ NestJS āļāļģāļŦāļāļāđāļŦāļĄāļāļāļēāļĢāļŠāļ·āđāļāļŠāļēāļĢāļĢāļ°āļŦāļ§āđāļēāļ microservices āļĄāļĩāļŠāļāļāļāļĢāļ°āđāļ āļāļŦāļĨāļąāļ: request-response (āđāļāļ synchronous āļāļĩāđāļĢāļāļāļēāļĢāļāļāļāļāļĨāļąāļ) āđāļĨāļ° event-based (āđāļāļ asynchronous āļāļĩāđāđāļĄāđāļĢāļāļāļēāļĢāļāļāļāļāļĨāļąāļ) decorator @MessagePattern() āļāļģāļŦāļāļ handler āļŠāļģāļŦāļĢāļąāļ request-response āļāļāļ°āļāļĩāđ @EventPattern() āļāļąāļāļāļēāļĢ event āđāļāļ asynchronous āļāļēāļĢāđāļĨāļ·āļāļ pattern āļāļķāđāļāļāļĒāļđāđāļāļąāļāļāļĢāļāļĩāļāļēāļĢāđāļāđāļāļēāļ: request-response āļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļāļģāđāļāļīāļāļāļēāļĢāļāļĩāđāļāđāļāļāļāļēāļĢāļāļēāļĢāļāļāļāļāļĨāļąāļāļāļąāļāļāļĩ, event-based āļŠāļģāļŦāļĢāļąāļāļāļēāļĢāđāļāđāļāđāļāļ·āļāļāđāļĨāļ° eventual consistency
transporter āđāļ NestJS Microservices āļĄāļĩāļāļāļāļēāļāļāļ°āđāļĢ?
āļāļ§āļēāļĄāđāļāļāļāđāļēāļāļĢāļ°āļŦāļ§āđāļēāļ @MessagePattern() āđāļĨāļ° @EventPattern() āļāļ·āļāļāļ°āđāļĢ?
+27 āļāļģāļāļēāļĄāļŠāļąāļĄāļ āļēāļĐāļāđ
āļŦāļąāļ§āļāđāļāļŠāļąāļĄāļ āļēāļĐāļāđ Node.js / NestJS āļāļ·āđāļāđ
āļāļ·āđāļāļāļēāļ Node.js
Core API āļāļāļ Node.js
āļāļēāļĢāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāđāļāļāļāļ°āļāļīāļāđāļāļĢāļāļąāļŠ
āļāļ·āđāļāļāļēāļ Express.js
āļāļ·āđāļāļāļēāļ NestJS
āļāļēāļĢāļāļāļāđāļāļ REST API
āļāļēāļĢāļāļĢāļ§āļāļŠāļāļāļāļ§āļēāļĄāļāļđāļāļāđāļāļāđāļĨāļ° DTO
āđāļāļāļŠāļēāļĢ API āđāļĨāļ° Contract
āļāļēāļĢāļāļąāļāļāļēāļĢāļāđāļāļāļīāļāļāļĨāļēāļ
āļāļēāļĢāļāļāļŠāļāļāļŦāļāđāļ§āļĒ (Unit Testing)
āļāļēāļĢāļāļąāļāļāļēāļĢāļēāļāļāļēāļ
Module āđāļĨāļ° DI āļāļāļ NestJS
āļāļēāļĢāļāļģāļŦāļāļāļāđāļēāđāļĨāļ°āļāļēāļĢāļāļąāļāļāļēāļĢāļŠāļ āļēāļāđāļ§āļāļĨāđāļāļĄ
āļāļēāļĢāļĒāļ·āļāļĒāļąāļāļāļąāļ§āļāļāļāđāļ§āļĒ JWT
āļāļēāļĢāđāļŦāđāļŠāļīāļāļāļīāđāđāļĨāļ° RBAC
āļāļēāļāļāđāļāļĄāļđāļĨāļāđāļ§āļĒ TypeORM
Prisma ORM
Middleware āđāļĨāļ° Interceptor
āļāļēāļĢāļāļąāļāđāļŦāļĨāļāđāļāļĨāđ
WebSockets
GraphQL āļāļąāļ NestJS
āļāļēāļĢāļāļāļŠāļāļāđāļāļ End-to-End
āļāļēāļĢāđāļāļāļāđāļ§āļĒ Redis
āļāļīāļ§āļāđāļ§āļĒ Bull
DevOps, Logging āđāļĨāļ° CI/CD
Docker āđāļĨāļ° Containerization
āđāļāļ§āļāļēāļāļāļāļīāļāļąāļāļīāļāļĩāđāļāļĩāļāļĩāđāļŠāļļāļāļāđāļēāļāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒ
āļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāđāļĨāļ°āļāļēāļĢ Deploy āļāļ Cloud
āđāļāļĩāđāļĒāļ§āļāļēāļ Node.js / NestJS āļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļŠāļąāļĄāļ āļēāļĐāļāđāļāļĢāļąāđāļāļāļąāļāđāļ
āđāļāđāļēāļāļķāļāļāļģāļāļēāļĄāļāļąāđāļāļŦāļĄāļ flashcards āđāļāļāļāļāļŠāļāļāđāļāļāļāļīāļ āđāļāļāļāļķāļāļŦāļąāļ code review āđāļĨāļ°āļāļąāļ§āļāļģāļĨāļāļāļŠāļąāļĄāļ āļēāļĐāļāđ
āđāļĢāļīāđāļĄāđāļāđāļāļĢāļĩ