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 ở chỗ đâu là source of truth 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.
Code-first 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ó: commit file schema vào repo; và chạy kiểm tra breaking change trong CI.