Tại Sao E-commerce Cần Agentic Search?

Hệ thống tìm kiếm là trái tim của mọi nền tảng thương mại điện tử. Nếu khách hàng không thể tìm thấy sản phẩm, họ sẽ không mua nó. Trong một thập kỷ qua, khi nói đến Search, mặc định chúng ta nói về Elasticsearch (với thuật toán BM25). Tuy nhiên, khi hành vi tìm kiếm của người dùng thay đổi—từ việc gõ những từ khóa cộc lốc (“giày chạy bộ nam”) sang những câu lệnh dài, chứa đầy ý định phức tạp (“tìm cho tôi một đôi giày chạy trail chống nước, size 42, dưới 2 triệu, có thể giao hàng trong hôm nay”), các cỗ máy tìm kiếm truyền thống bắt đầu bộc lộ tử huyệt. ...

22 tháng 5, 2026 · 5 phút · Vesviet Team

Kiến Trúc Agentic & Sức Mạnh Điều Phối Của Golang

Nếu bạn đã từng thử đưa một hệ thống RAG hoặc Multi-Agent viết bằng Python (sử dụng LangChain hay AutoGen) lên môi trường Production với hàng ngàn request đồng thời, chắc hẳn bạn đã nếm mùi đau khổ. Máy chủ cạn kiệt RAM, CPU nghẽn cổ chai, và độ trễ (latency) nhảy vọt một cách không kiểm soát. Nguyên nhân không nằm ở các mô hình LLM. Nguyên nhân nằm ở chính kiến trúc điều phối (Orchestration Architecture) mà bạn đang sử dụng. ...

22 tháng 5, 2026 · 6 phút · Vesviet Team

Data Ingestion & Atomic Chunking Dữ Liệu Sản Phẩm

Trong Phần 1: The Paradigm Shift - Kiến Trúc Agentic & Sức Mạnh Điều Phối Của Golang, chúng ta đã thiết lập bộ não điều phối (Orchestration Engine) bằng Golang và Eino. Tuy nhiên, một bộ não thông minh đến đâu cũng sẽ trở nên vô dụng nếu nó được tiếp nạp thông tin sai lệch, thiếu cấu trúc hoặc bị cắt vụn. Trong bài toán e-commerce, dữ liệu catalog sản phẩm thay đổi liên tục từng giây: giá cả biến động, tồn kho cập nhật, sản phẩm mới được thêm vào. Đồng thời, việc chia nhỏ (chunking) dữ liệu sản phẩm để đưa vào Vector Database (Qdrant) hoàn toàn khác biệt so với việc chia nhỏ một tài liệu PDF hay một bài báo. ...

22 tháng 5, 2026 · 9 phút · Vesviet Team

Qdrant Hybrid Search: Giải Bài Toán Hard Filters

Trong Phần 2: Data Ingestion & E-commerce Chunking - Đưa Dữ Liệu Sản Phẩm Vào Môi Trường AI, chúng ta đã thiết lập một pipeline đồng bộ dữ liệu sạch sẽ từ PostgreSQL sang Qdrant qua Kafka CDC. Nhưng hành trình xây dựng một hệ thống tìm kiếm chuẩn e-commerce chỉ mới bắt đầu. Khi người dùng nhập: “laptop Asus ROG Zephyrus G14 giá dưới 30 triệu còn hàng” Nếu sử dụng Dense Vector Search thuần túy: Hệ thống có thể trả về các laptop Asus ROG Zephyrus khác nhưng giá 45 triệu, hoặc thậm chí máy cũ đã hết hàng, vì mô hình Embedding chỉ hiểu được độ tương đồng ngữ nghĩa chung chung chứ không xử lý được các phép so sánh số học cứng (Hard Filters như price < 30,000,000 và in_stock = true). Nếu sử dụng Lexical Search (BM25) thuần túy: Hệ thống sẽ thất bại khi người dùng tìm kiếm theo ý định như “máy tính chơi game mỏng nhẹ hiệu năng cao”, vì các từ khóa này không xuất hiện trực tiếp trong văn bản mô tả sản phẩm. Giải pháp tối ưu cho e-commerce là Hybrid Search — kết hợp Dense Search (hiểu ngữ nghĩa), Sparse Search/BM25 (khớp từ khóa chính xác, mã SKU) và Filterable HNSW (lọc thuộc tính cứng hiệu năng cao). ...

22 tháng 5, 2026 · 8 phút · Vesviet Team

Active RAG & Strict Tool Calling Với Real-time API

Trong Phần 3: Làm Chủ Qdrant Hybrid Search - Giải Bài Toán Semantic và Hard Filters, chúng ta đã xây dựng thành công một engine tìm kiếm Hybrid mạnh mẽ, kết hợp giữa Dense Semantic và Sparse Lexical Search. Tuy nhiên, một hệ thống tìm kiếm e-commerce thực chiến không chỉ đơn thuần là việc lấy ra các văn bản tĩnh từ cơ sở dữ liệu vector. Ví dụ, người dùng hỏi: “Tôi muốn mua tủ lạnh Samsung Inverter 400L có sẵn tại chi nhánh Quận 1 và đang được áp dụng khuyến mãi.” Nếu chỉ dựa vào Vector Database, chúng ta sẽ gặp hai lỗi nghiêm trạng: ...

22 tháng 5, 2026 · 9 phút · Vesviet Team

Critique Loop Ngăn Chặn LLM Hallucination

Trong Phần 4: Active RAG & Strict Tool Calling - Kết Nối LLM Với Real-time Inventory API, chúng ta đã xây dựng thành công một đồ thị ReAct tuần hoàn để cho phép LLM gọi các API kiểm tra tồn kho và lấy thông tin khuyến mãi theo thời gian thực. Tuy nhiên, trong môi trường sản xuất thực tế, việc LLM có quyền truy cập vào các công cụ (Tools) vẫn chưa đủ để đảm bảo độ chính xác tuyệt đối. ...

22 tháng 5, 2026 · 9 phút · Vesviet Team

Production Agentic Search Optimization in Go

Trong Phần 5: The Self-Reflection Critique Loop - Kỹ Thuật Ngăn Chặn Hallucination, chúng ta đã xây dựng thành công bộ kiểm duyệt câu trả lời tự động để đảm bảo độ chính xác logic. Tuy nhiên, khi đưa hệ thống Agentic Search này lên môi trường production quy mô lớn phục vụ hàng triệu người dùng, bạn sẽ lập tức đối mặt với những thách thức vận hành thực tế: ...

22 tháng 5, 2026 · 9 phút · Vesviet Team
Quyết định cơ sở dữ liệu khi chuyển đổi Magento: Shared DB vs CDC vs Event Bus — So sánh Kiến trúc

Shared DB, CDC hay Event Bus? Quyết định Cơ sở dữ liệu khi Chuyển đổi Magento

🇬🇧 Read the English version of this article on tanhdev.com Answer-first: Khi chuyển đổi từ Magento sang Golang, bạn có ba chiến lược cơ sở dữ liệu (database): (A) Dùng chung DB (Shared DB) để tối ưu compute ngay lập tức, (B) CDC + Outbox để tách DB dần dần mà không cần đụng vào code PHP, hoặc (C) Tách biệt hoàn toàn bằng Event Bus. Phương án A là một trạng thái chuyển giao tuyệt vời nhưng lại là một trạng thái cuối cùng thảm họa. Phương án B là con đường được khuyến nghị trong ngành công nghiệp cho hầu hết các hệ thống Magento — nó cho phép Go làm chủ schema của riêng mình và làm phẳng cấu trúc EAV mà không yêu cầu PHP Magento phải phát ra dù chỉ một sự kiện nào. Phương án C chỉ khả thi khi đội ngũ Magento của bạn có thể xây dựng và duy trì một hệ thống phát hành sự kiện (event publisher) đáng tin cậy. ...

18 tháng 7, 2026 · 17 phút · Lê Tuấn Anh
So sánh kiến trúc AWS EKS vs ECS — tanhdev.com

AWS EKS vs ECS: Kiến trúc, Chi phí & Thực tế Sử dụng (2026)

🇬🇧 Read the English version of this article on tanhdev.com TL;DR: EKS cung cấp cho bạn toàn bộ sức mạnh của Kubernetes, khả năng di động và hệ sinh thái CNCF. ECS mang lại sự đơn giản thuần túy của AWS với chi phí control plane bằng $0. Hãy chọn EKS nếu bạn cần GitOps, ArgoCD, Dapr, hoặc muốn không bị khóa chặt vào một cloud (multi-cloud). Chọn ECS nếu bạn muốn đưa sản phẩm ra thị trường nhanh nhất trên AWS với gánh nặng vận hành tối thiểu. ...

26 tháng 6, 2026 · 19 phút · Tuan Anh

Kubernetes In-Place Pod Resizing: Nâng hạ CPU & Memory Mà Không Cần Restart

🇬🇧 Read the English version of this article on tanhdev.com Answer-first: Tính năng In-Place Pod Resizing (Nâng hạ Pod Tại Chỗ - đã đạt mốc GA ổn định ở Kubernetes v1.35) trao quyền cho bạn thay đổi cấu hình requests/limits của cả CPU và memory (bộ nhớ) trên các containers đang trong quá trình chạy mà chẳng thèm phải restart (khởi động lại) cái pod đó — triệt tiêu hoàn toàn sự gián đoạn của các đợt khởi động lạnh (cold-start disruptions) dành riêng cho nhóm tải việc AI inference (suy luận AI), hệ thống cơ sở dữ liệu (databases), và cả mấy cái khối xử lý mang thuộc tính stateful (cần lưu trạng thái) cứng đầu. Cuốn cẩm nang này sẽ moi móc hết rạch ròi về yêu cầu mấu chốt, hàng mẫu YAML dùng cho production, kiểu tích hợp chung bộ VPA, các nước cờ tối ưu hóa tiền bạc, cùng mấy cái bẫy chết người (gotchas). ...

12 tháng 6, 2026 · 41 phút · Tuan Anh

Go 1.26: Green Tea GC, CGO Nhanh Hơn & Goroutine Leak Detection

🇬🇧 Read the English version of this article on tanhdev.com Answer-first: Go 1.26 ra mắt ba tính năng runtime mang tính bước ngoặt: Garbage Collector Green Tea (giảm từ 10–40% GC overhead), các cuộc gọi CGO (cgo calls) nhanh hơn khoảng ~30% cho các ứng dụng liên kết AI inference (suy luận AI), và một profile thử nghiệm về goroutine leak (rò rỉ goroutine) giúp phát hiện các goroutine bị block (khóa) vĩnh viễn thông qua phân tích khả năng tiếp cận của GC (GC reachability analysis). ...

12 tháng 6, 2026 · 22 phút · Tuan Anh
Go microservices architecture production guide 2026

Kiến trúc Go Microservices: Hướng dẫn Production

Go microservices từ thiết kế domain đến triển khai Kubernetes — gRPC, Dapr, OpenTelemetry, và mô hình GitOps từ một dự án chuyển đổi 21-service thực tế.

12 tháng 6, 2026 · 34 phút · Lê Tuấn Anh

Golang gRPC Microservices chuẩn Production

🇬🇧 Read the English version of this article on tanhdev.com Tại sao chọn gRPC cho Go Microservices? Answer-first: gRPC chính là sự lựa chọn chuẩn xác dành cho hệ thống Go microservices khi mà bạn đang cần: chức năng tuần tự hóa (serialization) hiệu quả dạng nhị phân (binary-efficient) (Protobuf sở hữu kích thước nhỏ hơn JSON từ 3–10 lần), cơ chế luồng dữ liệu hai chiều (bidirectional streaming) phục vụ cho giao tiếp dữ liệu thời gian thực (real-time data), những bản hợp đồng giao ước mang kiểu dữ liệu chặt chẽ (strongly-typed contracts) trải dài liên tục giữa các dịch vụ, và một ngưỡng độ trễ giao tiếp chéo dịch vụ (inter-service latency) đạt dưới mức một mili-giây. Google, Uber, Netflix, và Square đều dùng gRPC để làm giao thức giao tiếp liên dịch vụ chính yếu (primary inter-service communication protocol) của mình. Cẩm nang này sẽ dìu dắt bạn cách thức xây dựng ra những bộ Go gRPC services đạt tầm production (production-grade) kể từ con số 0 tròn trĩnh. ...

11 tháng 6, 2026 · 26 phút · Tuan Anh

GraphHopper Distance Matrix: Triển khai Routing Engine

🇬🇧 Read the English version of this article on tanhdev.com GraphHopper Distance Matrix Là Cái Gì? Answer-first: GraphHopper distance matrix chính là điểm kết nối /matrix API trực thuộc thư viện tìm đường mã nguồn mở (open-source routing engine) GraphHopper. Nó sẽ thu nạp thông tin tọa độ của N điểm trạm và ói trả về nguyên một ma trận kết quả kích cỡ N×N chứa toàn bộ dữ liệu thời gian di chuyển (tính theo giây) cộng thêm độ dài lộ trình khoảng cách (tính theo mét) rạch ròi bám dựa trên lưới đường xá giao thông thực tế được cung cấp bởi bản đồ OpenStreetMap — tuyệt vời nhất là mọi thứ này sẽ tính phí zero (hoàn toàn miễn phí) khi bạn chọn cách tự mang về nhà cắm điện xài (self-hosted). Thử thách với lượng chạm mốc 100 điểm dừng giao hàng (delivery stops), cỗ máy này dễ dàng xử lý phay vèo toàn vẹn 10,000 cặp lộ trình đôi chỉ trong ngưỡng chớp mắt dưới 50 mili-giây (50ms) dẫu cho chạy tàng tàng trên một con máy chủ ảo VPS hạng bèo. ...

11 tháng 6, 2026 · 35 phút · Tuan Anh

Mở Rộng MySQL: Read Replicas, Sharding & TiDB

🇬🇧 Read the English version of this article on tanhdev.com Mở rộng MySQL (MySQL scalability) là khả năng gia tăng thông lượng của database — số lượt đọc mỗi giây, số lượt ghi mỗi giây, hoặc khối lượng dữ liệu — mà không cần phải viết lại ứng dụng. Một điểm khác biệt vô cùng quan trọng: scale đọc (read scaling - thêm replicas) và scale ghi (write scaling - sharding hoặc distributed SQL) đòi hỏi các phương pháp tiếp cận kiến trúc hoàn toàn khác nhau. Chọn sai hướng đi sẽ tạo ra technical debt (nợ kỹ thuật) phải mất nhiều tháng mới có thể giải quyết. ...

10 tháng 6, 2026 · 23 phút · Tuan Anh

Đồng Bộ Tồn Kho Thời Gian Thực: Kafka, CDC & Redis cho E-commerce

🇬🇧 Read the English version of this article on tanhdev.com Đồng Bộ Tồn Kho Thời Gian Thực Là Gì? Answer-first: Đồng bộ tồn kho thời gian thực (Real-time inventory synchronization) là quá trình lan truyền các thay đổi về số lượng hàng trong kho từ hệ thống gốc (database) tới tất cả các kênh bán hàng — web storefront, ứng dụng mobile, WMS, ERP — với độ trễ chưa tới một giây (sub-second). Thay vì phải phụ thuộc vào các tác vụ batch ETL chạy mỗi giờ, một pipeline CDC + Kafka sẽ stream mọi thay đổi tồn kho được commit thành một sự kiện (event), qua đó loại bỏ hoàn toàn tình trạng bán vượt mức (overselling) cũng như tránh hiển thị sai số lượng hàng hóa. ...

8 tháng 6, 2026 · 15 phút · Tuan Anh

Kiến trúc Phân tán Tracing Go Microservices (2026)

🇬🇧 Read the English version of this article on tanhdev.com Việc giám sát (Monitoring) các hệ thống Go microservices phức tạp đòi hỏi nhiều thứ hơn là chỉ các file logs độc lập riêng lẻ. Khi một request (yêu cầu) đi xuyên qua các HTTP APIs, luồng sự kiện (event streams) Kafka, và các worker pools bất đồng bộ (asynchronous worker pools), bạn cần một mức độ hiển thị tuyệt đối (absolute visibility) để có thể xác định chính xác các điểm nghẽn độ trễ (latency bottlenecks) cũng như các lỗi thất bại. ...

8 tháng 6, 2026 · 10 phút · Tuan Anh

Go pprof: Profiling CPU & Bộ nhớ trên Production

🇬🇧 Read the English version of this article on tanhdev.com Yêu cầu tiên quyết: Hướng dẫn này đề cập đến việc profile và chẩn đoán các sự cố hiệu năng phức tạp trên production. Nếu bạn đang xử lý tình trạng số lượng goroutine tăng trưởng không kiểm soát, hãy chắc chắn rằng bạn đã hiểu các khái niệm nền tảng trong bài viết Phát hiện và Xử lý Goroutine Leak trên Production Go Services. ...

2 tháng 6, 2026 · 11 phút · Tuan Anh

Alipay Double 11: Giải Thích Kiến Trúc 583,000 TPS

🇬🇧 Read the English version of this article on tanhdev.com Vào lúc nửa đêm ngày 11 tháng 11, khoảng 1,5 tỷ người trên khắp châu Á đồng loạt mở một ứng dụng duy nhất và bắt đầu chạm vào “Mua ngay”. Trong 60 giây đầu tiên, Alipay xử lý nhiều giao dịch hơn một ngân hàng lớn ở phương Tây xử lý trong cả một ngày. Đỉnh điểm của Ngày Lễ Độc Thân (Singles’ Day) năm 2023 — 583.000 giao dịch thanh toán mỗi giây (TPS) — không chỉ là một tiêu đề báo. Đó là sản phẩm của mười bốn năm tiến hóa kiến trúc đã định nghĩa lại ý nghĩa của từ “sẵn sàng cho production” đối với một nền tảng tài chính. ...

1 tháng 6, 2026 · 20 phút · Tuan Anh

Các Mẫu Goroutine Pool Trong Go: errgroup & Cơ Chế Chặn (Backpressure)

🇬🇧 Read the English version of this article on tanhdev.com Mọi kỹ sư Go cuối cùng đều viết cùng một sai lầm: một vòng lặp khởi chạy các goroutine vô điều kiện (unconditionally). Trong một bản demo với 10 mục, điều này hoạt động rất đẹp. Nhưng trong môi trường production (thực tế) với 50.000 sự kiện webhook đầu vào, nó sẽ sản sinh ra 50.000 goroutine cùng một lúc, làm cạn kiệt bộ nhớ và kích hoạt sát thủ diệt bộ nhớ (OOM killer). Kubernetes sẽ khởi động lại (restart) cái pod đó. Và rồi kỹ sư trực on-call nhận tiếng bíp gọi dậy lúc 3 giờ sáng. ...

1 tháng 6, 2026 · 27 phút · Tuan Anh

Cloudflare D1 + Durable Objects: Xây Dựng Giỏ Hàng Real-Time

🇬🇧 Read the English version of this article on tanhdev.com Kiến trúc giỏ hàng mua sắm truyền thống là một tập hợp các đánh đổi quen thuộc: Redis cho lưu trữ phiên (session), PostgreSQL cho dữ liệu đơn hàng, và một tầng backend API đứng giữa để điều phối. Cách này hoạt động được, nhưng nó tạo ra độ trễ tỷ lệ thuận với khoảng cách giữa người dùng và trung tâm dữ liệu của bạn, đòi hỏi chi phí vận hành cho việc quản lý cụm Redis, và gặp khó khăn trong việc xử lý các chỉnh sửa giỏ hàng đồng thời toàn cầu từ cùng một người dùng trên nhiều thiết bị. ...

1 tháng 6, 2026 · 18 phút · Tuan Anh

Go pprof trong Kubernetes: Remote Profiling & Flame Graphs

🇬🇧 Read the English version of this article on tanhdev.com Bạn đã gắn các bộ thu thập đo lường cho service Go của mình với net/http/pprof, chạy thử lệnh go tool pprof cục bộ (local) kiểm tra file binary lúc dev, và đã nhìn rõ mồn một các “hot path” (đường nghẽn cổ chai tốn thời gian nhất) trên biểu đồ ngọn lửa (flame graph). Thế rồi bạn triển khai lên Kubernetes và các điểm nghẽn ấy biến mất hoàn toàn — bởi vì hồ sơ tải (workload profile) trong Kubernetes khác xa với việc test cục bộ (mix request khác nhau, áp lực pool kết nối khác nhau, hành vi GC cũng khác dưới mức chịu tải thực tế, và cả sự can thiệp từ bộ lập lịch (scheduler) của các pod nằm chung node). ...

1 tháng 6, 2026 · 23 phút · Tuan Anh

GraphRAG và Naive RAG: Hướng Dẫn Kiến Trúc Doanh Nghiệp

🇬🇧 Read the English version of this article on tanhdev.com Đại đa số các phương án triển khai RAG (Retrieval-Augmented Generation) đều mang bộ mặt giống nhau: băm tài liệu thành từng mảng nhỏ (chunk), nhồi embedding vào thành vector, quăng vào một cái cơ sở dữ liệu vector (vector database), lôi kéo trích xuất lại thông qua tương quan cosine (cosine similarity), và dồn ép cụm top-K chunk đấy vào cái context LLM. Cú đánh này rất mượt cho mấy dạng câu hỏi đáp Q&A quanh một trang văn bản cỏn con. Nhưng nó lại nát bét 1 cách rập khuôn (systematically) hễ chạm tay vào đống kho tri thức doanh nghiệp cỡ bự, nơi mà mẩu đáp án cho 1 câu hỏi ứ chịu bám dính vào độc 1 cái chunk tài liệu rời rạc, mà vắt cựa dính nhằng nhịt vào những mối dây mơ rễ má liên hệ (relationships) kết chéo chằng chịt hàng tá thực thể (entities) xuyên nhau. ...

1 tháng 6, 2026 · 27 phút · Tuan Anh

Hướng Dẫn Dapr Workflow Go: Orchestrated Saga Pattern

🇬🇧 Read the English version of this article on tanhdev.com Hầu hết các lập trình viên Go xây dựng microservices đều biết đến mẫu Choreography Saga: service A phát ra (emit) một sự kiện, service B phản ứng, service C phản ứng với B, và cứ tiếp tục như vậy. Nếu bước C thất bại, các services sẽ phát ra các sự kiện “bù trừ” (compensation) theo thứ tự ngược lại. Mẫu này hoạt động một cách mượt mà đối với các luồng đơn giản, nhưng lại phá vỡ tính hiệu quả khi số lượng bước tăng lên: việc debug một saga thất bại đòi hỏi phải lần theo dấu vết (tracing) các sự kiện qua năm topic của message broker, và việc triển khai logic bù trừ đòi hỏi mỗi service phải hiểu toàn bộ trạng thái của saga. ...

1 tháng 6, 2026 · 17 phút · Tuan Anh

Kiến Trúc Gọi Xe Thời Gian Thực: Ngăn Xếp Kỹ Thuật Của Uber & Grab

🇬🇧 Read the English version of this article on tanhdev.com Ngay cái giây bạn bật cái app Uber hay Grab lên, 1 thác hệ thống thời gian thực (real-time systems) ồ ạt nổ máy cùng 1 lúc: điện thoại của bạn lăm le nhả tọa độ GPS, cái bản đồ không gian (geospatial index) xào lại vị trí của bạn, 1 cỗ máy ghép kèo (matching engine) soi lại mớ tài xế đang rảnh rỗi quanh đó, 1 mô hình tính tiền (pricing model) rặn ra cái giá mới toanh dựa trên tỷ lệ giành giật (supply-demand ratios), và 1 cái ống phụt tin nhắn (push notification pipeline) lên nòng hòng bắn cái tin chốt kèo tới tay trong vòng dưới 3 giây. ...

1 tháng 6, 2026 · 24 phút · Tuan Anh

Kiến Trúc PayPay: Bung Rộng Hệ Thống Thanh Toán Lên 70 Triệu Users

🇬🇧 Read the English version of this article on tanhdev.com PayPay vừa bấm nút chạy hồi tháng 10 năm 2018 thì đã hốt trọn 10 triệu người dùng chỉ trong vỏn vẹn 3 tháng — cái đà phi mã mà chả có mống fintech Nhật Bản nào từng ngó thấy. Tới tận năm 2025, cái nền tảng này đã cán mốc 70 triệu user đăng ký và cày 7.8 tỷ lượt thanh toán mỗi năm. Chống lưng cho cú vọt mọc đó là 1 đội ngũ kỹ sư ứ những phải còng lưng bung rộng cái dàn hạ tầng của họ, mà còn phải xới tung cả cái văn hóa làm kỹ thuật: từ vụ ốp chuẩn dịch vụ (service standardization) và đẩy code kiểu GitOps (GitOps-driven deployments) cho tới trò chọc phá hệ thống (chaos engineering) và nhúng AI vô để túm bọn lừa đảo (fraud detection). ...

1 tháng 6, 2026 · 21 phút · Tuan Anh

Kiến Trúc Shopee Flash Sale: Ngắt Họng & Redis

🇬🇧 Read the English version of this article on tanhdev.com Điểm đúng boong 0 giờ mùa 11.11, cái rớ con nghiện Shopee tuốt tuột dải Đông Nam Á với Đài Loan đè ngón vô xào chung 1 cái nút bấm nẩy. Độc trong 10 giây nòng châm hỏa (first 10 seconds) của 1 cái mùa săn sale chớp nhoáng (flash sale), 1 cái trang quầy rác (single product page) có thể bị cả triệu mống (millions of concurrent sessions) nã liên thanh — bu xâu nhào zô giành mớ 1,000 nhúm đồ lổn nhổn nhét kho (inventory). Thẩy lố 1 cục (One oversell), đứt bóng 1 cục máy (server crash), hay cái cục kho quẹt chết lâm sàng (database deadlock) lọt chỏm ở khúc đó hất đổ 1 sớ ná thở đâm chọc móc tiền (cascade of chargebacks), rớ con dân nhảy đổng (angry users), dìm mặt ụp bãi rác tờ đầu mốc nhép giang hồ bới (front-page news headlines). ...

1 tháng 6, 2026 · 19 phút · Tuan Anh

Thuật Toán Chốt Đơn Mua Hàng: Từ Tổng Kho Đến Tận Cửa Cuối (Last-Mile)

🇬🇧 Read the English version of this article on tanhdev.com Hễ mà bạn chốt 1 cái đơn hàng trên Amazon lúc 11:47 PM và sáng hôm sau nó lọt thỏm trước cửa nhà, thì từng li từng tí của cái hành trình đó đều bị giật dây (orchestrated) bởi một bầy thuật toán. Bọn này tự quyết định real-time chẻ ngang dọc qua cả mạng lưới ôm hàng trăm cái tổng kho (warehouses), hàng ngàn tài xế, và hàng triệu món đồ trong kho (inventory). Chả có cái khỉ gì là tình cờ (chance), và cũng ứ phải do con người tự quyết. ...

1 tháng 6, 2026 · 20 phút · Tuan Anh
Kỹ thuật đặt câu lệnh vs Tinh chỉnh vs RAG — Khung quyết định năm 2026 cho kỹ sư LLM

Tinh chỉnh (Fine-Tuning) vs Kỹ thuật đặt câu lệnh (Prompt Engineering): Cẩm nang quyết định năm 2026

🇬🇧 Read the English version of this article on tanhdev.com Trả lời nhanh (Answer-first): Hãy chọn kỹ thuật đặt câu lệnh (prompt engineering) cho việc thử nghiệm nhanh và các lĩnh vực chung. Triển khai RAG khi ứng dụng của bạn yêu cầu truy xuất thời gian thực từ một cơ sở tri thức được cập nhật thường xuyên. Chỉ áp dụng tinh chỉnh (fine-tuning) QLoRA khi bạn cần định dạng đầu ra nghiêm ngặt, tuân thủ phong cách nhất quán trước các đầu vào độc hại, hoặc cần nén lượng lớn token của câu lệnh. ...

1 tháng 6, 2026 · 23 phút · Lê Tuấn Anh

Tự Tổ Chức Triển Khai GraphHopper trên Kubernetes với Dữ liệu OSM

🇬🇧 Read the English version of this article on tanhdev.com GraphHopper có lẽ là cỗ máy định tuyến (routing engine) mã nguồn mở xịn xò bậc nhất lúc này — nó nhồi đầy đủ mảng Rút Ngọn Thứ Bậc (Contraction Hierarchies - CH) cho những câu truy vấn đáp trả mượt dưới cả độ tính mili giây, nặn hồ sơ bóp nắn khuôn xe (custom vehicle profiles), khắt khe rẽ cấm góc (turn restrictions), lại kẹp nguyên bộ sậu cấu trúc hạ tầng đường sá OpenStreetMap dầy cộm. Cục sạn mà hầu hết đội nhóm cắn phải chẳng phải mảng thuật toán; nó nằm rúc ở khúc thao tác khó khăn (operational challenge) vận nó bò lết lên nổi Kubernetes: nuốt chửng một file to đùng OSM PBF vào, đẽo gọt cắt cân khối size dung lượng của JVM, xoay xở gánh qua kỳ sơ chế nhào nặn ngốn cả đóng thì giờ của mảng CH (CH pre-processing), lẫn chiêu đổi nạp dữ liệu map khỏi phải lịm tắt cúp đèn hệ thống (without downtime). ...

1 tháng 6, 2026 · 19 phút · Tuan Anh