Định mệnh từng có nghĩa rất đơn giản đối với tôi. Nếu cùng một giao dịch được thực hiện hai lần dưới cùng một đầu vào, nó sẽ tạo ra cùng một đầu ra. Đó là mô hình tư duy chuẩn mà tôi đã sử dụng khi đánh giá xem một lớp hạ tầng có “vững chắc” hay không. Theo thời gian, khi làm việc với các hệ thống sản xuất thay vì các bản demo, tôi nhận ra định nghĩa đó không hoàn chỉnh đến mức nào.

Việc thực thi định mệnh không giống như tính đủ điều kiện định mệnh.

Hầu hết các chuỗi tập trung vào việc đảm bảo rằng việc thực thi có thể tái tạo. Dưới cùng một trạng thái và cùng một cuộc gọi, bạn sẽ nhận được cùng một kết quả. Điều đó là cần thiết, nhưng nó lặng lẽ bỏ qua một câu hỏi khó hơn. Liệu việc thực thi đó có nên được cho phép xảy ra hay không. Trong nhiều kiến trúc, câu trả lời đến muộn. Việc thực thi xảy ra trước. Tính đủ điều kiện được tranh luận sau đó thông qua quản trị, khôi phục, đồng thuận xã hội, hoặc kiểm tra chính sách theo lớp ở cấp độ ứng dụng.

Hệ thống vẫn giữ tính quyết định, nhưng trách nhiệm trở nên mờ nhạt.

Điều khiến tôi quan tâm về Dusk là nó chuyển đổi tính quyết định sớm hơn một lớp. Nó ít bị ám ảnh với việc đảm bảo rằng việc thực thi là có thể tái tạo, và nhiều hơn về việc đảm bảo rằng chỉ những việc thực thi đủ điều kiện mới được phép đi vào giải quyết. Nghe có vẻ như một sự thay đổi nhỏ trong cách diễn đạt, nhưng về mặt hoạt động, đó là một triết lý khác.

Việc thực thi có thể diễn đạt. Tính đủ điều kiện phải nghiêm ngặt.

Trong mô hình của Dusk, việc thực thi đề xuất các kết quả có thể, nhưng giải quyết quyết định liệu những kết quả đó có đáng để tồn tại hay không. Các kiểm tra ràng buộc, quy tắc đủ điều kiện và logic đủ điều kiện không phải là những rào cản trang trí. Chúng là một phần của ranh giới tách biệt "mã này đã chạy" khỏi "trạng thái này bây giờ là thực." Nếu các ràng buộc không được thỏa mãn tại ranh giới đó, kết quả thực thi đơn giản là không tốt nghiệp thành trạng thái có thẩm quyền.

Tôi đã thấy quá nhiều hệ thống mà việc thực thi không hợp lệ nhưng về mặt kỹ thuật lại hợp lệ trở thành sự thật lịch sử. Sau đó, các nhóm giải thích ngữ cảnh. Các kiểm toán viên tái tạo ý định. Các cuộc bỏ phiếu quản trị diễn giải lại các trường hợp biên. Sổ cái vẫn được giữ nguyên, nhưng ý nghĩa thì trôi dạt. Việc thực thi quyết định không ngăn chặn sự bất ổn ngữ nghĩa. Nó chỉ đảm bảo rằng sai lầm được tái tạo một cách hoàn hảo.

Dusk dường như được thiết kế để ngăn chặn loại sai lầm này trở thành lịch sử.

Điều này trở nên cụ thể hơn khi bạn nhìn vào các thành phần như thực thi bí mật thông qua Hedger và các dòng chảy được quy định như DuskTrade. Thực thi riêng tư được phép, nhưng nó không làm yếu đi việc thực thi ràng buộc. Các bằng chứng vẫn cần cho thấy rằng các quy tắc đã được thỏa mãn trước khi giải quyết chấp nhận kết quả. Một chuyển nhượng tài sản được quy định vi phạm đủ điều kiện không được coi là một sự kiện có thể phục hồi. Nó được lọc trước khi trở thành trạng thái.

Điều đó đẩy chi phí về phía trước.

Các nhà phát triển mất đi một số linh hoạt. Bạn không thể phụ thuộc vào việc dọn dẹp sau khi thực thi như một mạng an toàn. Việc lặp lại nhanh chóng với các trạng thái trung gian lộn xộn trở nên không thoải mái. Nhiều nỗ lực thiết kế chuyển sang đầu vòng đời. Đối với các nhóm đã được đào tạo về hạ tầng thích ứng, tha thứ đầu tiên, điều này cảm thấy hạn chế.

Nhưng sự hạn chế và sự rõ ràng thường là hai mặt của cùng một vấn đề ở những chân trời thời gian khác nhau.

Khi các hệ thống chạy đủ lâu, phần tốn kém không phải là tính toán. Đó là sự diễn giải. Mỗi trạng thái cần giải thích sau này trở thành gánh nặng vận hành. Tính đủ điều kiện quyết định giảm số lượng trạng thái đó được phép tồn tại ngay từ đầu. Bạn đánh đổi sự ma sát sớm để có sự ổn định ngữ nghĩa lâu dài.

Tôi không còn đánh giá hạ tầng bằng cách hỏi liệu việc thực thi có tính quyết định hay không. Tôi hỏi liệu tính đủ điều kiện có hay không. Một cái đảm bảo hành vi có thể lặp lại. Cái kia đảm bảo kết quả có thể bảo vệ. Trong những môi trường cuối cùng sẽ phải đối mặt với kiểm toán, tranh chấp và sự giám sát pháp lý, chỉ một trong những điều đó có thể mở rộng một cách sạch sẽ theo thời gian.

@Dusk #Dusk $DUSK