Apakah DynamoDB mendukung GraphQL?
Ya, lewat AWS AppSync. AppSync adalah layanan GraphQL terkelola milik AWS, dan DynamoDB adalah salah satu sumber data native-nya: resolver memetakan setiap query atau mutation GraphQL ke sebuah operasi DynamoDB seperti GetItem, Query, atau PutItem. DynamoDB sendiri tidak punya endpoint GraphQL — lapisan GraphQL-nya berjalan di depannya.
Cara pasangan ini bekerja
Di AppSync Anda mendaftarkan tabel DynamoDB sebagai sumber data, lalu melekatkan sebuah resolver ke setiap field pada schema GraphQL Anda. Request handler resolver menerjemahkan argumen GraphQL yang masuk menjadi panggilan DynamoDB, dan response handler-nya membentuk item yang dikembalikan DynamoDB menjadi respons GraphQL. AWS menempatkan AppSync di urutan pertama di antara integrasi serverless DynamoDB justru untuk pola ini.
Mengapa ini stack yang umum
Kedua paruhnya serverless: AppSync menskalakan lapisan API sementara DynamoDB menskalakan penyimpanan dan throughput, tanpa server di kedua sisi. Subscription GraphQL real-time berpasangan alami dengan penulisan DynamoDB yang berlatensi milidetik satu digit.
Berapa biaya satu field bersarang
Satu resolver per field berarti satu permintaan DynamoDB per field. posts { author { name } } me-resolve daftarnya sekali, lalu me-resolve author sekali per post, dan masing-masing ditagih terpisah.
Diukur dengan ReturnConsumedCapacity terhadap tabel berisi 25 post dalam satu item collection dan 25 item author, masing-masing sekitar 920 byte:
Query, the 25 posts ConsumedCapacity 3.0
25 GetItem calls, one author each ConsumedCapacity 12.5
1 BatchGetItem, the same 25 author keys ConsumedCapacity 12.5Field bersarang itu berbiaya lebih dari empat kali query yang menghasilkan daftarnya. Batching tidak mengubah itu: BatchGetItem (sebuah operasi resolver AppSync tersendiri, dibatasi 100 key dan 16 MB per panggilan) meringkas 25 perjalanan bolak-balik menjadi satu, tetapi ia tetap membaca 25 item dan menagih 25 pembacaan. Ia membeli latensi, bukan kapasitas.
Pada sepuluh query GraphQL semacam itu per detik, jumlahnya $50.92 sebulan untuk read request unit di us-east-1 on-demand, $41.06 di antaranya hanya dari field author — kalkulator harga menjalankan aritmetika yang sama pada angka Anda sendiri.
Itulah sebabnya perbaikannya ada di desain key dan bukan di resolver. Proyeksikan apa yang dikembalikan field bersarang itu ke dalam item induknya atau ke dalam sebuah GSI, supaya query daftarnya sudah membawanya dan resolver anak tidak punya apa pun untuk diambil.
Alternatifnya: bawa server Anda sendiri
Tidak ada yang mengharuskan AppSync — server GraphQL mana pun (Apollo, Yoga, dan lainnya) bisa me-resolve field dengan memanggil DynamoDB lewat AWS SDK, persis seperti ia memanggil backend lain. Kompromi-nya adalah Anda mengoperasikan sendiri lapisan GraphQL-nya.
Pelajari lebih lanjut
Resolver GraphQL tetap tunduk pada aturan pola akses yang sama — panduan pemodelan data menjelaskan cara merancang key yang melayani query Anda, expression builder menghasilkan sintaks kondisi yang mendasarinya, dan DynoTable memungkinkan Anda memeriksa apa yang sebenarnya ditulis resolver Anda.
Referensi
- Data sources — AWS AppSync Developer Guide
- Resolver mapping template reference for DynamoDB — AWS AppSync Developer Guide
- What is Amazon DynamoDB? — Amazon DynamoDB Developer Guide
- BatchGetItem — Amazon DynamoDB API Reference
Terakhir diverifikasi 2026-07-13 terhadap dokumentasi resmi AWS yang ditautkan di atas.
Angka kapasitas diukur 2026-07-28 terhadap DynamoDB Local 3.3.0 via @aws-sdk/client-dynamodb 3.1095.0 pada Node 24.18.0; nilai ConsumedCapacity di atas adalah milik engine itu sendiri. Biaya dihitung dari harga request unit on-demand us-east-1 dalam tabel harga AWS yang kami sinkronkan.