Schema-first: viết schema bằng SDL rồi cài đặt resolver theo nó. Code-first: định nghĩa kiểu bằng mã và schema được sinh ra. Khác biệt thật nằm ở nguồn sự thật của contract và cách các đội phối hợp.
Schema trước hợp khi contract cần bàn bạc trước giữa đội client và đội server, vì tệp schema là thứ cụ thể để cùng xem. Rủi ro là mã cài đặt và schema có thể lệch nhau nếu không có kiểm tra tự động.
Mã trước hợp khi một đội sở hữu cả hai phía, vì kiểu trong mã và schema không thể lệch. Rủi ro là schema dễ bị định hình theo cấu trúc lưu trữ vì người viết nhìn từ phía mã ra.
Dù chọn cách nào, hai thực hành nên có: cam kết tệp schema vào kho mã; và chạy kiểm tra breaking change trong CI.