Citus 12.1 is out! Now with PG16 Support. Read all about it in Naisila’s 12.1 blog post. 💥
This post by Teresa Giacomini about version 3 of the Activity Book for Postgres was originally published on Microsoft Tech Community.
Version 3 of the “Activity Book for Postgres” is hot off the press. And you can get your own copy if you come say hello at the Microsoft booth at the PGConf NYC and PGConf EU conferences in 2023. The Activity Book will also be available at other Postgres meetups and smaller PGDay events that our team attends throughout the year (and it was one of the giveaways at Citus Con: An Event for Postgres earlier this year, too.)
Whether you have kids, or nieces, or nephews—or perhaps you yourself find coloring a useful way to distract your hands while your mind tackles complex problems—you can likely put the book to good use. And who doesn’t like a good bad database joke?
In this post, you’ll find out about the inspiration for the book, as well as the hidden meaning behind each of the pages—and a way to request your own copy.
How did this thing come to be?
Inspired by the GitHub Activity Book, the first version of the Activity Book for Postgres debuted at PGConf EU 2019 in Milan. People loved it. The 2nd version came out at PGConf NYC in September 2022. And now v3 is available too, a complete revamp of the previous editions—with El the spunky little elephant you’ll find throughout.
Designing this activity book for ages “3 to Adult” was quite fun.
There are so many Postgres features, a thriving Postgres ecosystem, and a global community that loves Postgres. An Activity Book for Postgres is a celebration of Postgres and its extensions, ecosystem, and community—a homage to Postgres to delight those of you who manage to get your own copy, and have some fun. To that end, the coloring pages and activities in this book satisfy these constraints:
After much brainstorming, deliberation, and collaboration, these topics & concepts were chosen for inclusion in v3, in alphabetical order. Do you think we missed anything? What would you have included?
Each page of the activity book has a hidden meaning rooted in Postgres, Citus, or general database language and technology. If you want to know the story behind each page, read on. If you just want to see how you can get your hands on one, skip to the bottom.
Global Postgres Community: Postgres has a global community creating, using, and supporting Postgres. The borderless world map illustrates the worldwide love for Postgres. The map is not in perfect scale, but the heart symbolizes the community’s love for Postgres. You’ll also find mascots from a few other open source projects, landmarks from a few of the places Postgres events will happen, and a turtle. (In Japan, Postgres is represented by a turtle rather than an elephant.)
AI-ready: With pgvector available now, Postgres is AI-ready, and so is El.
SQL Language: Did any of you love these word scramble games growing up? For this Postgres-y version you’ll find database & SQL terms that non-engineers will know as ordinary English words, though you might need to help young children with the word “tuple”. The solution is a phrase many developers and database admins have uttered more than once. Also included, the first of several database jokes!
Performance of Postgres 16: In 2023, PGConf EU will be held in Prague, Czechia, hence the setting for this super-fast bullet train #16. The number 16 stands for PG16 of course—and the speedy train to represent the performance gains Postgres users enjoy.
Real-time analytics apps: El the fortune teller is using a crystal ball to analyze the gathered data, which is similar to what real-time analytics applications do. The data is then used to provide the python and gopher (mascots for other open-source projects) with insight into past performance and upcoming trends. And a bad database pun is here too.
Multi-tenant SaaS apps and distributed Postgres: Using Citus, multi-tenant SaaS developers now have two ways to shard Postgres: row-based sharding represented by the high rises in the city, and schema-based sharding represented by the cookie cutter style suburbs. What type of sharding will El choose?
Database terminology: Who doesn’t love a crossword—especially one all about database terminology? Plus a SQL pun.
Postgres extensions: One of the many important attributes of PostgreSQL is its extensibility. In the Postgres toolbox, El has many different extensions to choose among to get the job done. Included are just a few favorites—pg_cron, Citus, PostGIS, pg_stat_statements, & pgvector.
Distributed Postgres with Citus: At the pizza parlor, El is tossing pizza and distributing ingredients across different pizzas. You can think of the different pizzas as different nodes in a distributed Citus database cluster.
Cracking the Code: All adventurers need to be able to crack the code. Postgres developers do too. While coding, El uses the key to solve the puzzle with a special message about Citus. Don’t miss the silly “dad” joke.
Tuples & pages: In the Postgres world, this game represents tuples and pages. In this game, the player whose tuples occupy the most space on the page wins!
Sharding with Citus: One of the key concepts of the Citus database extension to Postgres is sharding. When you shard, you split a table into multiple smaller tables that can be distributed across nodes in a cluster. This page features El the Shard Explorer—and a bad pun.
Backups & Disaster Recovery: Luckily El had been diligently backing up Postgres, and so had a parachute when disaster struck. (In v4, you might even find a hot air balloon to represent a hot standby.) And there are some open-source friends along for the ride.
SELECT DISTINCT or Lag—you decide: One of El’s daily adventures is figuring out what to wear. Translated into database terminology: every day El must SELECT DISTINCT.
Alternatively, El has many followers, a true influencer! Setting the trends in fashion, though the followers sometimes lag behind the latest trend. (It’s not a perfect representation of latency, but it's a little more of a challenge for the kids than a more precise model would be.)
More SQL vocabulary: You’ll find key high availability and SQL terms in this word search—offering you a great opportunity to explain these database concepts to the people in your life who are not (yet!) Postgres experts.
Patroni for High Availability: Patroni is one of the most widely-used tools for High Availability with Postgres (it uses Kubernetes.) The wide-awake elephant in the Pod in the middle is the primary or active database. The two sleeping elephants in Pods to the right and left are on standby, waiting to be activated if needed.
If so, send me a DM on the Citus Public Slack. I plan to send out a copy to the first 25 people who request it (and DM me their shipping address)... but not until later in October, after I'm back from PGConf NYC (where Microsoft is a sponsor, so you can find me in the booth)!
And if you have ideas on other concepts to represent, games to play, or jokes to tell in a future V4 of the Activity Book for Postgres, please let me know.
Many people had a hand in “An Activity Book for Postgres v3”. Special thanks to Isaac Alves, My Nguyen, and Eliza Fortney for bringing El to life and to Adam Wolk, Alexander Kukushkin, Carol Smith, and Claire Giordano for their careful review of the book itself, and this blog post too.