TechCraft Official

TechCraft - Biến lập trình thành nghệ thuật 🎨💻
www.patreon.com/cw/techcraft_official/membership?s…


TechCraft Official

😨 Thấy @Transactional bọc cả một REST API call.

Nhìn qua tưởng rất an toàn:

1️⃣ Lưu dữ liệu vào Database
2️⃣ Gọi sang hệ thống bên ngoài
3️⃣ Nhận kết quả rồi cập nhật trạng thái
4️⃣ Có lỗi thì rollback toàn bộ

Nhưng có một vấn đề:

@Transactional chỉ quản lý transaction của Database hiện tại.

Nó không thể rollback những gì đã xảy ra ở hệ thống bên ngoài. ⚠️

Ví dụ:

💳 Hệ thống gọi Payment Gateway và thanh toán thành công.
🌐 Response trên đường về bị timeout.
↩️ Method throw exception nên Database rollback.

Kết quả:

Payment Gateway đã trừ tiền, nhưng hệ thống của bạn lại không lưu nhận giao dịch thành công.

Tệ hơn, nếu request được retry, khách hàng có thể tiếp tục bị trừ tiền lần nữa. 💥

Bọc REST API call trong transaction còn có thể khiến:

🔒 Database connection và lock bị giữ lâu
⏱️ Transaction phụ thuộc vào độ trễ của network
📉 Connection Pool nhanh chóng cạn khi traffic tăng
💥 Remote service timeout kéo theo transaction thất bại
🔄 Retry dễ tạo ra side effect trùng lặp

Distributed System không có một nút rollback chung cho cả Database và REST API.

Thay vì kỳ vọng @Transactional giải quyết tất cả, hệ thống thường cần kết hợp:

✅ Idempotency
✅ Trạng thái trung gian như PENDING hoặc PROCESSING
✅ Timeout và Retry có kiểm soát
✅ Outbox Pattern
✅ Compensation hoặc Reconciliation
✅ Lưu lại request để có thể xử lý tiếp khi gặp lỗi

@Transactional rất mạnh trong phạm vi một Database.

Nhưng bước qua network boundary, chúng ta đã bước vào một bài toán khác.

Đó không còn chỉ là Database Transaction.

Đó là Distributed Transaction. 🧠

💬 Bạn từng gặp trường hợp Database rollback nhưng hệ thống bên ngoài đã xử lý thành công chưa?

#TechCraft #SpringBoot #Transactional #Backend #DistributedSystems #Microservices #SystemDesign #SoftwareEngineering

4 days ago | [YT] | 9

TechCraft Official

Đổi trắng thay đen thế này 🤔

1 week ago | [YT] | 6

TechCraft Official

Tưởng tách Microservices để scale 😎
Ai ngờ chỉ là Monolith nối lại bằng HTTP 🥲

#TechCraft #Microservices #DistributedSystems

2 weeks ago | [YT] | 10

TechCraft Official

🧐 Index của bạn vẫn không giúp Query nhanh?
Bạn đã thức đêm tạo Index cho bảng dữ liệu triệu dòng, nhưng Query vẫn chậm “như rùa” 🐢

Database không luôn tuân theo ý bạn. Query Optimizer sẽ cân nhắc CPU, RAM, Disk I/O để quyết định có dùng Index hay không… và đôi khi, kết quả sẽ khiến bạn bất ngờ.

Trong bài viết này, mình phân tích các lý do phổ biến khiến Index bị bỏ qua, kèm ví dụ production và trade-off thực tế.

👉 Xem bài chi tiết tại:
www.patreon.com/techcraft_official/posts/database-…

#TechCraft #DevInsider #DatabaseInternals #BackendEngineering #Indexing #QueryOptimization #PerformanceTuning

3 weeks ago | [YT] | 4

TechCraft Official

Công ty: AI là tương lai 🚀
Developer: 👋🥲
Technical Debt từ 2019: 💀

#TechCraft #Developer #AI #TechnicalDebt #SoftwareEngineering

3 weeks ago | [YT] | 4

TechCraft Official

📖 TechCraft đã có mặt trên Viblo. 🚀

Mới lên Viblo được ít hôm, tín hiệu ban đầu cũng khá vui. 😄

TechCraft hiện đang Top 1 tác giả nổi bật tháng.

Anh em theo dõi TechCraft trên Facebook, YouTube, TikTok hay Dev Insider chắc đã quen với các series về Software Engineering rồi.

Từ giờ, các series public của TechCraft sẽ có thêm phiên bản bài viết chuyên sâu trên Viblo.

Và không, đây không phải copy lời thoại video rồi paste thành bài. 🤣

Mỗi bài được viết để phân tích kỹ hơn, bổ sung flow, ví dụ, code, trade-off và các góc nhìn kỹ thuật, đồng thời kết hợp cùng video YouTube tương ứng.

Hiện đã có:

⚙️ System Design
🗄️ Database System Design
⚡ Caching
🔴 Redis
📨 Kafka 101
🧩 Microservices

🎥 Thích xem → Facebook/YouTube/Tiktok.
📖 Thích đọc, tra cứu → Viblo.

Link toàn bộ series trên Viblo mình để dưới comment nhé 👇

Hiểu hệ thống. Không chỉ framework. 🚀
#TechCraft #Viblo #SoftwareEngineering #SystemDesign #BackendEngineering #SeniorEngineer

3 weeks ago | [YT] | 3

TechCraft Official

Sau event CEO 500K...

TechCraft cũng bán "khóa học". 😌
Nhưng không bán framework.

Dev Insider được tạo ra để giúp Developer từng bước trở thành Senior Engineer thực thụ.

Đó là hành trình học cách hiểu:
🧠 Hệ thống.
🗄️ Dữ liệu.
⚖️ Trade-off.
💼 Business impact.

☕ Chỉ ngang một ly cà phê mỗi tháng
www.patreon.com/cw/techcraft_official/membership

3 weeks ago | [YT] | 5

TechCraft Official

💡 Bạn đã bao giờ tự hỏi một Request đi qua Server như thế nào?

Nó không chỉ “vào thẳng code”. Trước khi chạm Controller, Request đã phải đi qua Network, OS, Web Server, Runtime, rồi mới đến Application Logic.

Junior dev thường thấy Controller + Database, nhưng thực tế 95% thời gian Request nằm ở các tầng I/O, Thread Pool, TCP, SSL…

Hiểu đúng hành trình này, bạn sẽ:

Nhận ra bottleneck thực sự không phải code
Biết cách tối ưu Connection Pool và I/O
Tránh những sai lầm “scale-up vô tội vạ”

👇 Bài chi tiết + ví dụ production + trade-off đầy đủ:
www.patreon.com/techcraft_official/posts/backend-p…

#TechCraft #DevInsider #BackendInternals #BackendEngineering #SystemDesign #ThreadPool #PerformanceEngineering #Programming

3 weeks ago | [YT] | 4

TechCraft Official

System Design là gì?

3 weeks ago | [YT] | 2

TechCraft Official

CEO:

"Đuổi hết dev rồi."



Tin đồn:
Connection DB
nằm trong HTML.

4 weeks ago | [YT] | 16