Hero coauthor of “Serverless Applications with Node.js” book AWS SAM & Lambda Builders Contributor Co-organizer of JS Belgrade, Serverless Belgrade, Wardley Maps Belgrade meetups
and Fast (4M transc. / sec) Document or Key-Value Scales per Any Load Access control (Fine grained access table, items, attributes, values) Event Driven Model (Connected to AWS Lambda)
of primary keys: - partitionKey (hash) - partitionKey + range Indexing Scientist field year Marie Curie Chemistry 1911 Marie Curie Physics 1903 John Bardeen Physics 1956 Leonid Hurwicz Economics 2007 hash + range example
1903 Radioactivity France Esther Duflo Economics 2019 Alleviating Global Poverty Get items country = “France” scientist begin_with “Marie” NO Local Secondary Index
Local Secondary Index Country Scientist field year topic France Marie Curie Chemistry 1903 Radioactivity France Esther Duflo Economics 2019 Alleviating Global Poverty LSI Partition Key: scientist range: year
Thrill 1980 Back in Black Florian Pellieser Quintet Coup de foudre a Thessalonique 2018 Coup de foudre a Thessalonique NO Global Secondary Index Get items artist = “AC/DC” order by song ASC
Thrill 1980 Back in Black Florian Pellieser Quintet Coup de foudre a Thessalonique 2018 Coup de foudre a Thessalonique Global Secondary Index Get items album = “Back In Black” order by song DESC GSI Partition Key: album range: song * this is why the GSI costs extra *
Complex queries and joins Bad use cases Good use cases Very high read/write Key-value simple queries Consistently low-latency Autosharding / multiple node scaling No tuning No size throughout put limits OLTP OLAP