Databases are the stateful layer of a platform — the part that cannot be redeployed from a Git repository, scaled by adding replicas of a stateless process, or restored by re-running a pipeline. That single property is what makes operating them a distinct engineering discipline rather than a variation on running application servers, and it is what this course is about: the primitives that are common to every datastore, and the decisions that differ between them.
The landscape is genuinely varied. Relational engines such as MySQL, PostgreSQL, SQL Server and Oracle offer transactions, constraints and a query planner. Document stores such as MongoDB trade schema enforcement for flexibility and horizontal distribution. Key-value stores such as Redis put the working set in memory and make durability a configuration choice. Wide-column, search, time-series, graph and object stores each exist because a specific access pattern made the general-purpose answer expensive. Streaming platforms such as Kafka increasingly sit between them all as the system of record for change.
Underneath the variety, the same small set of mechanisms recurs. Write-ahead logging and fsync define durability. Replication defines availability, and its synchrony defines what a client is actually guaranteed after an acknowledged write. Indexes and working-set size define performance. Backup only counts once a restore has been rehearsed and timed. Access control, encryption in transit and at rest, and auditing define whether the data survives a compliance review. Learning those mechanisms once makes every specific engine — self-managed, on Kubernetes, or behind a managed service — a matter of translating known concepts into that product's vocabulary.
Why this skill matters now
Two changes have made database operations an infrastructure problem rather than a specialist one. First, the dedicated DBA function has largely been absorbed into platform and SRE teams, so the people carrying the pager for a datastore usually have no database background. Second, polyglot persistence has become normal: a single product now routinely runs a relational store, a cache, a search index and a streaming platform, and no one person was hired for all four.
That combination produces a specific and expensive kind of failure. Datastores are chosen by whoever wrote the first service, on the basis of familiarity rather than access pattern. Durability settings are inherited from a quickstart guide, so a system that everyone believes is transactional is acknowledging writes it can lose. Backups exist as a scheduled job that has never been restored, so the recovery time objective is a number in a document rather than a measurement. Cross-engine questions — which store should own this data, what happens when two of them disagree, how do we migrate off this one — have no owner at all.
Managed services have made provisioning trivial and the underlying skills more valuable, not less. RDS, Aurora, Cloud SQL, Atlas, ElastiCache and MSK remove the machines; they do not choose your indexes, size your working set, set your consistency level, design your access model or rehearse your restore. The roles that now hire for this ask for exactly that: an engineer who can operate several kinds of datastore competently, reason about the trade-offs between them, and be trusted with the part of the platform that cannot be rebuilt.