Chương 9 — Nghi thức rollback

Chương 9 — Nghi thức rollback

Sảnh MămMăm sáng thứ sáu phủ màu cam chói mắt. Tấm phông sau sân khấu ghi: MĂMMĂM PAY, THANH TOÁN NHANH HƠN CẢ CÁI ĐÓI. Mùi cà phê máy lẫn mùi bánh ngọt để lâu.

Khải ngồi cạnh bàn tiếp tân, trước mặt là khay gỗ, ba quả cam, bát gạo và cuộn dây mạng vàng. Hưng bảo đồ cúng phải có hồn. Khải nhìn bát gạo vun đầy, chỉ muốn úp lên đầu người duyệt ngân sách.

Linh đặt máy tính bảng xuống quầy.

“Bản cập nhật vừa lên lúc năm giờ mười hai.”

“Có người duyệt?”

“Có nút bỏ qua kiểm tra. Bên sản phẩm muốn thêm thanh toán nhanh cho slide demo. Họ bảo chỉ thay giao diện.”

“Câu đó hay mở đầu cho đám tang phần mềm.”

Linh chỉ biểu đồ. “Dịch vụ tính phí gọi ngược về cổng thanh toán để hỏi trạng thái. Hai bên chờ nhau trả lời. Đến giờ đông khách, kết nối kín chỗ.”

“Tôi cần mười lăm phút bảo trì, đưa mã cũ trở lại. Tài đối soát.”

Qua vách kính, Hưng đang tiếp khách quỹ. Ngọc đứng cạnh một gã vest xanh sẫm, mắt gã rà khắp sảnh như kiểm kê tài sản.

Tin nhắn của Hưng nằm đầu chat nội bộ: GIỮ HÌNH ẢNH. DEMO MƯỜI GIỜ. KHÔNG ĐƯỢC TẮT THỨ GÌ.

“Cô chuẩn bị đi,” Khải nói. “Tôi kiếm mười lăm phút.”

Mười giờ, khách kín sảnh. Hưng đứng trên sân khấu, giơ thẻ màu cam. Màn hình LED sau lưng hiển thị biểu đồ đơn hàng xanh mướt.

“MămMăm Pay sẽ rút thời gian thanh toán xuống dưới hai giây.”

Tài chạy tới. “Lỗi lên bảy phần trăm. Đơn trả tiền xong không đổi trạng thái. Tổng đài réo liên tục.”

Khải nhìn ra hành lang. Linh xòe năm ngón tay rồi nắm lại.

Cổng thanh toán chết.

Màn hình LED chớp. Đồ thị biến thành vòng tròn quay. Thẻ trên tay Hưng chạm máy quét, phát ra tiếng bíp dài. Ở quầy đồ ăn, màn hình hiện ĐANG XỬ LÝ. Khách quét lại, máy kêu liên hồi.

Hưng kéo Khải vào góc khuất. “Có cách nào không?”

“Rollback.”

“Không. Khách quỹ đang nhìn. Sửa nóng đi.”

Linh và Tài bước tới.

“Không sửa nóng,” Linh nói. “Giao dịch treo đang mở kết nối. Đụng vào bây giờ có khoản bị trừ hai lần. Đưa mã cũ trở lại rồi đối soát vẫn khoanh được thiệt hại.”

“Rollback cũng gây thiệt hại.”

“Khách chờ, một số đơn xác nhận lại. Sửa nóng giữa lúc nghẽn thì số dư chạy lung tung.”

Hưng nhìn các giao dịch ngân hàng đã báo nhận tiền nhưng MămMăm chưa biết ghi vào đâu. Ông tắt màn hình. “Tôi không ký cho dừng.”

Khải nhớ hạn thứ sáu Minh đặt ra. Vụ demo vỡ trước khách Thiên Long tiện quá mức.

Anh nhấc bát gạo. “Vậy không dừng. Làm lễ.”

“Lễ gì?”

“Lễ hoàn nguyên. Cửa tiền bị luồng mới chặn ngược, nuốt tiền mà không nhả. Muốn mở phải quay về chỗ trước khi bị động vào.”

Khải gõ ba cái lên khay. Tài hiểu ra trước.

“Tôi cần đóng luồng tài lộc mười lăm phút. Không ai sửa, không ai nạp dữ liệu. Cô Linh và anh Tài ở trong giữ trận.”

“Đừng nói đóng,” Hưng liếc ra đám khách.

“Tạm phong tỏa cửa tiền.”

Ngọc tiến đến. “Anh Minh muốn biết tình hình.”

Hưng dựng nụ cười. “Trục trặc nhỏ. Đang xử lý.”

Khải bước lên sân khấu, giật micro khỏi tay nữ MC.

“MămMăm Pay vừa gặp dấu hiệu lạ. Có người đưa luồng phí giao hàng đi ngược cửa thu tiền. Tiền vào bị kéo qua kéo lại, nghẽn ngay cổ chai.”

Khách xôn xao. Khải rải gạo xuống sàn.

“Mời mọi người tạm ngưng quét mã mười lăm phút. Ai cố thanh toán lúc này, đến cuối ngày mới biết giao dịch trừ vào đâu.”

Khách lập tức cất thẻ.

Hưng chộp micro phụ. “Đây là bước kiểm định cuối cùng của quy trình an toàn.”

Khải mở cửa hành lang. “Cô Linh, anh Tài. Mở cửa gió.”

Trong phòng điều khiển, Linh dừng nhận yêu cầu, chuyển luồng đơn vào hàng chờ rồi đưa bản cũ trở lại. Tài theo dõi giám sát, cắn nát ống hút cà phê.

“Có migration,” Tài nói. “Bản cập nhật đổi cấu trúc bảng giao dịch rồi.”

“Khóa ghi bù. Đưa giao dịch treo sang hàng cách ly. Tôi quay cơ sở dữ liệu về bản sao lúc bốn giờ năm mươi.”

“Đơn từ năm giờ tới giờ?”

“Đối soát bằng log ngân hàng và lịch sử ví. Mất công, không mất tiền.”

Bên ngoài, Khải quấn dây vàng quanh chân micro, sai người mang bình lau kính tới làm “nước rửa đường tài”, rồi đi tắt các máy quét.

“Máy này cất đi. Quét lại là tự nhân giao dịch.”

Một cô gái bên quỹ hỏi: “Thầy chắc chứ?”

“Cô thử quét ba lần cốc cà phê đi. Nếu tiền không mất, tôi trả.”

Cô cất ví.

Một phóng viên hỏi MămMăm có sự cố thật không.

“Công ty nào chẳng có sự cố,” Khải đáp. “Khác nhau ở chỗ giấu đến lúc nào, và sửa bằng tiền của ai.”

Hưng nghe được, mắt giật mạnh.

“Một phút thôi,” Hưng rít lên.

“Anh muốn tôi nói sai giờ là sai lễ.”

Tài thò đầu ra, giơ ngón cái.

Khải thả hạt gạo vào bát. “Cửa mở.”

Nhân viên quét thử. Máy bíp, màn hình hiện dấu tích xanh. Tiếng vỗ tay vang lên. Hưng cầm micro thao thao về an toàn vận hành.

Linh bước ra, gật đầu với Khải. Hệ thống đã sống lại.

Hưng kéo cô vào sau phông. “Báo cáo gửi tôi trước. Không thông báo ra ngoài.”

“Chưa xong,” Linh nói. “Cổng chạy lại không có nghĩa tiền về đúng chỗ. Phải đối soát.”

Tài gọi từ phòng điều khiển. “Chị Linh, có cái này.”

Bảng đối soát hiện những ô đỏ. Một tài khoản doanh nghiệp có số dư khả dụng âm một trăm tám mươi triệu, nhưng giao dịch bên cạnh vẫn ghi ĐÃ GHI CÓ.

“Bảy tài khoản. Đều là ví người bán doanh nghiệp.”

Linh kéo cột thời gian sang. “Không phát sinh trong lỗi hôm nay.”

Khải nhìn các giao dịch lặp đều từ ba ngày trước. Sự cố sáng nay chỉ kéo tấm khăn phủ lên, để lộ phần bị giấu.

Cái tên đầu danh sách: Công ty TNHH Giải pháp Vận hành Đại Lộc.

Tài ngẩng lên. “Đại Lộc là tài khoản từng xóa cảnh báo phòng máy.”

Hưng bước tới. “Đóng màn hình.”

Linh không nhúc nhích.

“Tôi bảo đóng.”

“Đây là tiền người dùng.”

“Đây là bảng tạm sau sự cố. Tài, xuất số liệu sạch để tiếp khách. Linh, kiểm tra riêng. Cấm mở phiếu sự cố, cấm ghi vào báo cáo hôm nay.”

Khải đặt bát gạo trước màn hình đối soát.

“Anh Hưng, lễ hoàn nguyên chưa xong.”

“Cái gì nữa?”

Anh chỉ vào những ô đỏ hắt lên đáy bát. “Có thứ chui vào đường tiền từ trước. Anh bắt bưng kín thì nó sẽ chạy lại. Lần sau tôi không diễn nổi đâu.”

Hưng đưa tay tắt màn hình. Căn phòng tối đi, chỉ còn đèn báo trên tủ mạng chớp xanh đều đều.