Whether you’re working with a single node database, a distributed system, or an MPP database, a key factor in the flexibility you get with the system is how you shard or partition your data. Do you do it by customer, time, or some random uuid? Here we’ll walk through five different approaches to sharding your data and when you should consider each. If you’re thinking you need to scale beyond a single node this will give you the start of your roadmap for doing so. We’ll cover the basics of how you can do this directly in Postgres as well as principles that apply generically to any database.