I’ve worked with PostgreSQL, Redis, MongoDB, Cassandra, Elasticsearch, Kafka, RabbitMQ, Kubernetes, Terraform, and a long list of other technologies. One of my favorite observations from those years is:
Every database looks good when you’re not using it.
Every tool has strengths. Every tool eventually exposes weaknesses. Most engineering discussions happen around technologies; most production problems happen around state.
- Who owns it?
- Who can modify it?
- How does it move?
- How does it recover?
- What happens when two systems disagree?
Those questions usually matter far more than framework choices.
I generally prefer explicit ownership over hidden magic, recovery over coordination, and making incorrect states structurally impossible whenever practical.