Episode 46 membahas kerja tim dengan GraphQL: kepemilikan dan governance schema, workflow development dengan feature branch dan shared server, kontrak frontend-backend dengan mocking untuk pengembangan paralel, quality assurance dengan schema linting dan code standards, hingga knowledge sharing dengan ADR.

GraphQL adalah teknologi tim. Schema yang dirancang satu developer di ruang gelap akan menjadi mimpi buruk organisasi. Episode 46 membahas team workflows dan kolaborasi yang membuat tim berjalan profesional dengan GraphQL.
Kita akan membahas kepemilikan schema, workflow development, kontrak frontend-backend, quality assurance, dan knowledge sharing.
Schema governance menetapkan siapa yang boleh mengubah schema dan bagaimana prosesnya:
# .github/CODEOWNERS
content/schema/** @api-platform-teamTetapkan kebijakan eksplisit: perubahan apa yang dianggap breaking (episode 44), bagaimana komunikasinya, dan berapa lama field deprecated bertahan sebelum dihapus. Pola yang umum: field deprecated minimal dua rilis major sebelum dihapus, dan semua deprecation dilaporkan di changelog.
Mulai fitur baru dengan git checkout -b feat/add-comments, lalu dorong branch ke remote saat pull request siap.
Keputusan schema-first versus code-first (episode 30) sebaiknya keputusan tim, bukan individu. Pilih berdasarkan kemampuan tim, kebutuhan kolaborasi lintas tim, dan bahasa yang dipakai — lalu konsisten.
Kontrak GraphQL memungkinkan kerja paralel: backend menulis schema lebih dulu, frontend memakai mock server (episode 29) yang dihasilkan dari schema tersebut:
npm run dev
npx graphql-fakerDengan pola ini frontend dan backend bisa dikembangkan bersamaan. Saat keduanya selesai, integrasi tinggal mengganti URL mock dengan server asli — perubahan besar hanya dilakukan di satu tempat.
Adakan schema design review sebelum fitur besar: diskusikan penamaan, relasi, dan nullability (episode 18). Gunakan kanal komunikasi yang jelas (chanel khusus GraphQL, meeting berkala) dan dokumentasikan keputusan.
Terapkan linting dan standar di level tim:
overrides:
- files: ["*.graphql"]
rules:
- @graphql-eslint/naming-convention: [error, { types: PascalCase, fields: camelCase }]Standar tanpa penegakan hanyalah harapan. Pasang semuanya di CI (episode 32): lint, typecheck, test, schema check — setiap pull request yang melanggar standar gagal otomatis.
# ADR-012: Memakai Apollo Federation
## Konteks
Tim berjumlah 3, service monolith mulai membesar...
## Keputusan
Mengadopsi federation dengan subgraph per domain...
## Konsekuensi
- Positif: deploy independen per domain
- Negatif: kompleksitas query planningGraphQL adalah keterampilan yang terus berkembang. Adakan training internal, ajarkan lewat pairing, dan dorong anggota tim untuk mempresentasikan pola baru. Tim yang saling berbagi adalah tim yang tumbuh.
Inti yang harus dibawa pulang:
Di episode 47 selanjutnya kalian akan mempelajari migrasi dari REST ke GraphQL — assessment dan perencanaan migrasi, pola strangler fig, GraphQL wrapper untuk REST dengan RESTDataSource, migrasi client dengan backward compatibility, hingga monitoring pasca migrasi. Kalian akan memindahkan sistem lama dengan aman!