Dungeons, Dragons, and Graph Databases

Abstract:

Are you an adventurer? Do you want gold? Experience? Levels? Of course you do! And where do you get these things? The dungeon, where else? That wonderful container of all things adventurous! But, unfortunately, dungeons aren't setup for the convenience of adventurers who wish to extract these fine things. It’s almost as if the dungeon master just made the dungeon up at random. And so you wander about and you get what you get. But you’re also a developer. You could build a database of all the rooms with their shiny and monstrous content. Then you could query it and find the optimal route to get the gold and the experience and the levels. But how would you model this data and write these queries? The rooms. The corridors. The monsters. The sparkling hoozits. That’s a lot of entities to relate to each other. And that’s gonna be a monster of a SQL query. Whoa–look at that JOIN! Better get my text editor ready. Or, you could use a graph database. A graph database allows you to model these relationships simply and intuitively with nodes and edges. Being schema-free, you can evolve your graph as you encounter new things such as traps or secret doors. And, using the Cypher query language, you can write elegant and easy to understand queries that find the best routes to get the stuff adventures desire most. In this talk, I’ll use the aforementioned example to introduce you to the concepts of graph databases. I’ll compare how to solve this problem with a relational database and how a graph database makes it easier. I’ll show you how to query and modify your graph. And, as no talk would be complete without a live demo, I’ll do it all using a real-time procedurally generated random dungeon (I am a dungeon master after all). So come, have a flagon of mead as you learn about graph databases, optimize your dungeon crawl, and equip another weapon in your quest for better software!

Speakers:

  • Guy Royse

    1 Recording
    Guy works for Redis as a Developer Advocate. Combining his decades of experience in writing software with a passion for sharing what he has learned, Guy goes out into developer communities and helps others build great software. Teaching and community have long been a focus for Guy. He is President of the Columbus JavaScript Users Group, an organizer for the Columbus Machine Learners, and has even has helped teach programming at a prison in central Ohio. In his personal life, Guy is a hard-boiled geek interested in role-playing games, science fiction, and technology. He also has a slightly less geeky interest in history and linguistics. In his spare time, he volunteers for his local Cub Scout Pack, goes camping, and studies history and linguistics. Guy lives in Ohio with his wife, his three teenage sons, and an entire wall of games.

Recorded At:

Recorded on:

Aug 24, 2021

More Info:

https://www.meetup.com/TulsaDevelopers-net/events/280227877/

Tags: