Sau khi xem 1 video giải thích về Retry Storms trong một sự cố của Uber mà anh Ngô Vũ Trường Sơn gửi cho, mình có lên mạng tìm thêm bài viết để đọc về sự cố này. Cảm thấy nó đủ hay để phân tích mổ xẻ, retry nói riêng và microservices nói chung nên mình quyết định nghiền ngẫm lâu hơn và đúc rút ra bài viết này.
Làm việc trong một công ty trading, nơi "high frequency" và "low latency" gần như là những từ khóa xuất hiện hằng ngày, mình dần nhận ra một điều khá thú vị: để viết phần mềm nhanh hơn, đôi khi điều quan trọng không phải là viết code thông minh hơn, mà là hiểu rõ hơn cách phần cứng thực sự vận hành.
Đó cũng chính là tinh thần của Mechanical Sympathy – một tư duy thiết kế phần mềm mà mình đang có cơ hội tiếp cận và cảm thấy thực sự hứng thú. Từ cách CPU xử lý dữ liệu, cách bộ nhớ được tổ chức, cho đến cách những thông điệp được mã hóa và trao đổi, có rất nhiều thứ đáng để tìm hiểu.
Tiếp nối bài viết trước về Ring Buffer và LMAX Disruptor, lần này mình sẽ tiếp tục hành trình ấy với Simple Binary Encoding (SBE) – một định dạng mã hóa nhị phân được thiết kế cho những hệ thống yêu cầu độ trễ cực thấp, đặc biệt là trong lĩnh vực trading.
Tiếp tục series tìm hiểu những công nghệ mới mình gặp trong công việc. Lần này là LMAX Disruptor — một cách tiếp cận khá thú vị để xử lý event giữa các thread với throughput rất cao và latency rất thấp, thường xuất hiện trong những hệ thống trading và real-time processing.