$ ls -la ~/posts/architecture/
2026-05-10
15m
Docs-as-code tối thiểu thời AI Agent: README, một sơ đồ, và PR là nơi cập nhật context
2026-05-03
24m
Phần 12: Capacity planning: sizing trước khi production chịu không nổi
2026-05-02
26m
Phần 11: Multi-tenant: shared DB, schema-per-tenant, DB-per-tenant
2026-05-01
24m
Phần 10: Bulkhead, circuit breaker, retry: resilience không phải thêm library
2026-04-30
23m
Phần 9: Sharding: partition data khi một DB không đủ
2026-04-29
24m
Phần 8: Outbox pattern: ghi DB và publish event không mất message
2026-04-28
22m
Phần 7: Cache strategy: invalidation là bài toán khó nhất
2026-04-27
24m
Phần 6: Saga pattern: orchestration vs choreography
2026-04-26
22m
Phần 5: CQRS: tách đọc ghi khi nào có lợi
2026-04-25
24m
Phần 4: Event-driven: event notification vs event sourcing
2026-04-24
27m
Phần 3: Message queue: Kafka, RabbitMQ, SQS: chọn theo bài toán
2026-04-23
21m
Phần 2: API gateway: routing, auth, rate limit ở một chỗ
2026-04-22
25m
Phần 1: Tách service hay giữ monolith: framework quyết định
2026-04-22
2m
Thiết kế hệ thống Backend
2026-04-19
20m
Load balancing: algorithm, health check, và session
2026-04-19
10m
Technical debt: định giá và trả nợ theo rủi ro kinh doanh
2026-04-18
26m
Monorepo hay polyrepo: chọn mô hình quản lý code
2026-04-15
16m
WebSocket: kết nối real-time ở quy mô lớn
2026-04-11
18m
API versioning: thay đổi mà không break client
2026-04-11
20m
SQLite lên production: khi nào hợp, khi nào đừng
2026-04-05
14m
Event-driven: message broker không phải magic
2025-05-30
9m
UI state và cache: nguồn sự thật và đồng bộ
2024-12-19
10m
OWASP cho engineer: threat theo luồng dữ liệu (không checklist rỗng)