Tại một công ty trước đây, người đứng đầu bộ phận kỹ thuật và các kỹ sư chính đã quyết định chia ứng dụng Ruby on Rails của chúng tôi thành một mạng lưới microservices Go. Họ đã tạo ra các tài liệu thiết kế và sơ đồ kiến trúc rất chi tiết. Họ đã đầu tư toàn bộ và sử dụng Kubernetes, gRPC, mẫu dịch vụ, tất cả mọi thứ. Toàn bộ lãnh đạo kỹ thuật cấp cao đến từ Amazon, nơi họ đã quen với việc mỗi đội sở hữu một dịch vụ riêng biệt. Họ đã cố gắng áp dụng mô hình đó một cách trực tiếp. Nhưng vấn đề của chúng tôi là quyền sở hữu mã và mô hình miền kém. Toàn bộ ứng dụng có thể đã chạy trên chỉ một vài EC2 instances. Kết quả là gì? Năm năm sau, 70% ứng dụng vẫn đang chạy trên monolith Ruby on Rails. Không bao giờ hoàn thành việc di chuyển. Nhưng bây giờ họ phải duy trì hai hệ thống. Không ai trong số lãnh đạo ban đầu còn làm việc ở đó nữa.