Technology

Technology

Databases, the middleware in front of them, and the systems underneath. Written from primary documentation, with configuration you can actually run rather than illustrative fragments.

How it connects

Databases, middleware, systems and infrastructure - excluding AI, which has its own map at /ai - by what depends on, replaces, or pairs with what.

Choose a starting point, then follow a recorded connection.

Use the map to decide what to read next: compare alternatives, look into a listed dependency or find a complementary tool. Lanes group entries by category and sort them alphabetically, so position does not signal importance or a reading order.

These are editorial recorded associations, not live topology or universal dependencies. Each arrow runs from the entry that records a relationship to the entry it names. It does not show traffic, execution order or a verified deployment.

Follow a card to its guide or profile, or open the text view below.

  • Dependency
  • Recorded use
  • Alternatives
  • Complements

This view shows 39 technologies joined by 163 directed records.

How to read this map

Every arrow points from the entry that owns a record to the entry it references. Reciprocal records stay separate, and the line pattern identifies the field, not strength or certainty. The linked guides give the context; a record on its own does not explain technical necessity.

Dependency (dependsOn)
A lists B in dependsOn; check the guide for scope and configuration.
Recorded use (usedBy)
A lists B in usedBy. This is not converted into a dependency claim about B.
Alternatives (alternatives)
A lists B as an alternative to compare, not a guaranteed drop-in replacement.
Complements (complements)
A lists B as a complement, not a requirement to deploy both.

A filled dot leads to a guide or concept explanation; a hollow dot leads to a relationship profile. The number on a card counts its direct records in this view. Selecting a card highlights only those direct records, not a transitive dependency tree.

Technologies appear when they have at least 1 outgoing record before filtering and belong to Database, Data Engineering, Middleware, Infrastructure, Systems, Observability. Connections to entries outside this view are not drawn, so absence here does not mean that no relationship exists.

Text view: every displayed node and recorded connection

Each sentence names the record owner first, then the referenced entry. A connection appears under both endpoints for lookup, without reversing its meaning. This view and its links work without JavaScript.

Data Engineering

Apache Airflow Data Engineering

Open guide: Apache Airflow

7 direct recorded connections in this view.

Apache Kafka Data Engineering

Open guide: Apache Kafka

9 direct recorded connections in this view.

Apache Spark Data Engineering

Open guide: Apache Spark

7 direct recorded connections in this view.

Debezium Data Engineering

Open guide: Debezium

6 direct recorded connections in this view.

  • Recorded use / usedByApache Kafka records Debezium in its usedBy list. This is a recorded use association, not an inferred dependency.
  • Dependency / dependsOnDebezium lists Apache Kafka as a dependency.
  • Dependency / dependsOnDebezium lists PostgreSQL as a dependency.
  • Dependency / dependsOnDebezium lists MySQL as a dependency.
  • Recorded use / usedByMySQL records Debezium in its usedBy list. This is a recorded use association, not an inferred dependency.
  • Recorded use / usedByPostgreSQL records Debezium in its usedBy list. This is a recorded use association, not an inferred dependency.

Database

CouchDB Database

Open guide: CouchDB

3 direct recorded connections in this view.

  • Dependency / dependsOnCouchDB lists Linux as a dependency.
  • Alternatives / alternativesCouchDB lists MongoDB as an alternative.
  • Recorded use / usedByLinux records CouchDB in its usedBy list. This is a recorded use association, not an inferred dependency.

DynamoDB Database

Open guide: DynamoDB

1 direct recorded connection in this view. 1 further record touches an entry outside this view.

MariaDB Database

Open guide: MariaDB

17 direct recorded connections in this view.

Memcached Database

Open guide: Memcached

4 direct recorded connections in this view.

  • Recorded use / usedByLinux records Memcached in its usedBy list. This is a recorded use association, not an inferred dependency.
  • Dependency / dependsOnMemcached lists Linux as a dependency.
  • Alternatives / alternativesMemcached lists Valkey as an alternative.
  • Alternatives / alternativesValkey lists Memcached as an alternative.

Milvus Database

Open guide: Milvus

9 direct recorded connections in this view.

  • Recorded use / usedByetcd records Milvus in its usedBy list. This is a recorded use association, not an inferred dependency.
  • Recorded use / usedByKubernetes records Milvus in its usedBy list. This is a recorded use association, not an inferred dependency.
  • Dependency / dependsOnMilvus lists Kubernetes as a dependency.
  • Dependency / dependsOnMilvus lists etcd as a dependency.
  • Alternatives / alternativesMilvus lists pgvector as an alternative.
  • Alternatives / alternativesMilvus lists Qdrant as an alternative.
  • Complements / complementsMilvus lists Kubernetes as a complement.
  • Complements / complementsMilvus lists etcd as a complement.
  • Alternatives / alternativesQdrant lists Milvus as an alternative.

MongoDB Database

Open guide: MongoDB

7 direct recorded connections in this view. 1 further record touches an entry outside this view.

  • Alternatives / alternativesCouchDB lists MongoDB as an alternative.
  • Alternatives / alternativesDynamoDB lists MongoDB as an alternative.
  • Recorded use / usedByLinux records MongoDB in its usedBy list. This is a recorded use association, not an inferred dependency.
  • Dependency / dependsOnMongoDB lists Linux as a dependency.
  • Alternatives / alternativesMongoDB lists PostgreSQL as an alternative.
  • Complements / complementsMongoDB lists Kubernetes as a complement.
  • Alternatives / alternativesPostgreSQL lists MongoDB as an alternative.

Database (continued)

MySQL Database

Open guide: MySQL

9 direct recorded connections in this view.

  • Dependency / dependsOnDebezium lists MySQL as a dependency.
  • Recorded use / usedByLinux records MySQL in its usedBy list. This is a recorded use association, not an inferred dependency.
  • Alternatives / alternativesMariaDB lists MySQL as an alternative.
  • Dependency / dependsOnMySQL lists Linux as a dependency.
  • Recorded use / usedByMySQL records Debezium in its usedBy list. This is a recorded use association, not an inferred dependency.
  • Alternatives / alternativesMySQL lists MariaDB as an alternative.
  • Alternatives / alternativesMySQL lists PostgreSQL as an alternative.
  • Alternatives / alternativesMySQL lists SQL Server as an alternative.
  • Complements / complementsMySQL lists ProxySQL as a complement.

PostgreSQL Database

Open guide: PostgreSQL

37 direct recorded connections in this view. 1 further record touches an entry outside this view.

Qdrant Database

Open guide: Qdrant

5 direct recorded connections in this view.

  • Recorded use / usedByLinux records Qdrant in its usedBy list. This is a recorded use association, not an inferred dependency.
  • Alternatives / alternativesMilvus lists Qdrant as an alternative.
  • Dependency / dependsOnQdrant lists Linux as a dependency.
  • Alternatives / alternativesQdrant lists pgvector as an alternative.
  • Alternatives / alternativesQdrant lists Milvus as an alternative.

SQL Server Database

Open guide: SQL Server

6 direct recorded connections in this view. 1 further record touches an entry outside this view.

Database (continued)

Valkey Database

Open guide: Valkey

4 direct recorded connections in this view.

  • Recorded use / usedByLinux records Valkey in its usedBy list. This is a recorded use association, not an inferred dependency.
  • Alternatives / alternativesMemcached lists Valkey as an alternative.
  • Dependency / dependsOnValkey lists Linux as a dependency.
  • Alternatives / alternativesValkey lists Memcached as an alternative.

pg-jev Database

Open guide: pg-jev

7 direct recorded connections in this view.

pgvector Database

Open guide: pgvector

10 direct recorded connections in this view. 6 further records touch entries outside this view.

Infrastructure

Kubernetes Infrastructure

Open guide: Kubernetes

15 direct recorded connections in this view. 5 further records touch entries outside this view.

etcd Infrastructure

Open guide: etcd

12 direct recorded connections in this view. 2 further records touch entries outside this view.

  • Dependency / dependsOnetcd lists Linux as a dependency.
  • Recorded use / usedByetcd records Patroni in its usedBy list. This is a recorded use association, not an inferred dependency.
  • Recorded use / usedByetcd records Kubernetes in its usedBy list. This is a recorded use association, not an inferred dependency.
  • Recorded use / usedByetcd records Milvus in its usedBy list. This is a recorded use association, not an inferred dependency.
  • Complements / complementsetcd lists Patroni as a complement.
  • Complements / complementsetcd lists Kubernetes as a complement.
  • Dependency / dependsOnKubernetes lists etcd as a dependency.
  • Recorded use / usedByLinux records etcd in its usedBy list. This is a recorded use association, not an inferred dependency.
  • Dependency / dependsOnMilvus lists etcd as a dependency.
  • Complements / complementsMilvus lists etcd as a complement.
  • Dependency / dependsOnPatroni lists etcd as a dependency.
  • Complements / complementsPrometheus lists etcd as a complement.

Middleware

Galera Cluster Middleware

Open relationship profile: Galera Cluster

6 direct recorded connections in this view. 1 further record touches an entry outside this view.

HAProxy Middleware

Open guide: HAProxy

13 direct recorded connections in this view. 2 further records touch entries outside this view.

Patroni Middleware

Open guide: Patroni

13 direct recorded connections in this view. 1 further record touches an entry outside this view.

PgBouncer Middleware

Open guide: PgBouncer

11 direct recorded connections in this view. 1 further record touches an entry outside this view.

Pgpool-II Middleware

Open guide: Pgpool-II

8 direct recorded connections in this view.

ProxySQL Middleware

Open relationship profile: ProxySQL

8 direct recorded connections in this view.

keepalived Middleware

Open guide: keepalived

9 direct recorded connections in this view. 1 further record touches an entry outside this view.

Observability

LangSmith Observability

Open relationship profile: LangSmith

5 direct recorded connections in this view. 4 further records touch entries outside this view.

Systems

Containers Systems

Open relationship profile: Containers

6 direct recorded connections in this view. 2 further records touch entries outside this view.

Linux Systems

Open guide: Linux

35 direct recorded connections in this view. 6 further records touch entries outside this view.

  • Dependency / dependsOnApache Airflow lists Linux as a dependency.
  • Dependency / dependsOnApache Kafka lists Linux as a dependency.
  • Dependency / dependsOnApache Spark lists Linux as a dependency.
  • Dependency / dependsOnContainers lists Linux as a dependency.
  • Dependency / dependsOnCouchDB lists Linux as a dependency.
  • Dependency / dependsOnetcd lists Linux as a dependency.
  • Dependency / dependsOnHAProxy lists Linux as a dependency.
  • Dependency / dependsOnInfluxDB lists Linux as a dependency.
  • Dependency / dependsOnkeepalived lists Linux as a dependency.
  • Dependency / dependsOnKubernetes lists Linux as a dependency.
  • Recorded use / usedByLinux records PostgreSQL in its usedBy list. This is a recorded use association, not an inferred dependency.
  • Recorded use / usedByLinux records MariaDB in its usedBy list. This is a recorded use association, not an inferred dependency.
  • Recorded use / usedByLinux records MongoDB in its usedBy list. This is a recorded use association, not an inferred dependency.
  • Recorded use / usedByLinux records Kubernetes in its usedBy list. This is a recorded use association, not an inferred dependency.
  • Recorded use / usedByLinux records HAProxy in its usedBy list. This is a recorded use association, not an inferred dependency.
  • Recorded use / usedByLinux records keepalived in its usedBy list. This is a recorded use association, not an inferred dependency.
  • Recorded use / usedByLinux records etcd in its usedBy list. This is a recorded use association, not an inferred dependency.
  • Recorded use / usedByLinux records Containers in its usedBy list. This is a recorded use association, not an inferred dependency.
  • Recorded use / usedByLinux records MySQL in its usedBy list. This is a recorded use association, not an inferred dependency.
  • Recorded use / usedByLinux records CouchDB in its usedBy list. This is a recorded use association, not an inferred dependency.
  • Recorded use / usedByLinux records InfluxDB in its usedBy list. This is a recorded use association, not an inferred dependency.
  • Recorded use / usedByLinux records Memcached in its usedBy list. This is a recorded use association, not an inferred dependency.
  • Recorded use / usedByLinux records Qdrant in its usedBy list. This is a recorded use association, not an inferred dependency.
  • Recorded use / usedByLinux records Valkey in its usedBy list. This is a recorded use association, not an inferred dependency.
  • Recorded use / usedByLinux records Apache Kafka in its usedBy list. This is a recorded use association, not an inferred dependency.
  • Recorded use / usedByLinux records Apache Airflow in its usedBy list. This is a recorded use association, not an inferred dependency.
  • Recorded use / usedByLinux records Apache Spark in its usedBy list. This is a recorded use association, not an inferred dependency.
  • Complements / complementsLinux lists Containers as a complement.
  • Dependency / dependsOnMariaDB lists Linux as a dependency.
  • Dependency / dependsOnMemcached lists Linux as a dependency.
  • Dependency / dependsOnMongoDB lists Linux as a dependency.
  • Dependency / dependsOnMySQL lists Linux as a dependency.
  • Dependency / dependsOnPostgreSQL lists Linux as a dependency.
  • Dependency / dependsOnQdrant lists Linux as a dependency.
  • Dependency / dependsOnValkey lists Linux as a dependency.

Guides

In-depth pages, newest content first within each category.

PostgreSQL High Availabilityadvanced

Patroni, etcd, HAProxy and keepalived assembled into one topology - who decides, who routes, who owns the address, and the failover timeline.

Architecture
Read/Write Splittingadvanced

Routing reads to replicas without breaking read-after-write - where to split, the LSN token that makes it safe, and what replication lag costs you.

Architecture
RAG at Production Scaleadvanced

Retrieval topology beyond the demo - index freshness, authorisation applied before retrieval rather than after, and the corpus as a supply chain.

Architecture
RAG for Operational Reportingadvanced

A worked reference design for turning operational data - logs, metrics, alerts, tickets - into narrative reports with retrieval-augmented generation, grounded in published research rather than a specific product.

Architecture
Payment Ledger Designadvanced

Double-entry accounting as a database schema - append-only entries, idempotency keys for retried payments, derived balances, and daily reconciliation.

Architecture
Transaction Monitoring and Sanctions Screeningadvanced

AML and sanctions architecture where false-positive economics dominate - alert generation, triage, tuning as a governed change, and the audit trail.

Architecture
Data pipelinesbeginner

Batch versus streaming pipelines, ETL versus ELT, idempotent writes, backfills, and the failure modes that turn a nightly job into a week of recovery.

Data Engineering
Change data captureintermediate

Log-based change data capture - reading the database WAL instead of polling tables, Debezium and Kafka Connect, replication slots, snapshotting, and what breaks when the consumer falls behind.

Data Engineering
Streaming platformsintermediate

Apache Kafka in practice - partitioned logs, consumer groups, replication and in-sync replicas, delivery semantics, KRaft, and the operational failures that matter.

Data Engineering
Workflow orchestrationintermediate

Apache Airflow in practice - DAGs as code, scheduling semantics and the data interval, retries and SLAs, backfills, and when an orchestrator earns its place over a cron job.

Data Engineering
Lakehouse and table formatsadvanced

Open table formats on object storage - Parquet as the columnar file layer, Apache Iceberg's snapshot model, schema and partition evolution, time travel, and how Iceberg compares with Delta Lake and Hudi.

Data Engineering
Data qualityintermediate

Data quality in practice - data contracts, schema and distribution checks, freshness and volume monitoring, where testing sits in the pipeline, and why a green pipeline run is not a quality signal.

Data Engineering
Data warehousingintermediate

Data warehouse architecture in practice - warehouse versus lake versus lakehouse, MPP and columnar storage, star schema modelling with facts and dimensions, slowly changing dimensions, and where warehouses fit in a modern stack.

Data Engineering
Apache Sparkintermediate

Apache Spark in practice - driver and executors, lazy evaluation and the DAG of stages, shuffles, partitions, Structured Streaming, and the failure modes that make Spark jobs slow or dead.

Data Engineering
dbtintermediate

dbt in practice - models and ref(), materializations, tests, snapshots for slowly changing dimensions, sources and freshness, and why dbt is a transformation layer, not an orchestrator.

Data Engineering
Schema registryintermediate

Schema registries and schema evolution in practice - why a topic needs a declared shape, Avro/Protobuf/JSON Schema, compatibility modes, the wire format, and what breaks when evolution rules are bypassed.

Data Engineering
PostgreSQLintermediate

PostgreSQL internals that decide production behaviour - MVCC and XID wraparound, autovacuum thresholds, work_mem, WAL durability, indexes, replication.

Databases
PostgreSQL 17 Installation and Configurationbeginner

Installing PostgreSQL 17 on Ubuntu/Debian, RHEL/Rocky/AlmaLinux, Windows and macOS, with the postgresql.conf and pg_hba.conf settings to review before anything connects to it.

Databases
PostgreSQL 19 - what changes and what breaksintermediate

PostgreSQL 19 release status, an overview of every feature area - REPACK, WAIT and sequence replication, parallel and scored autovacuum, plan advice, I/O autoscaling, the monitoring additions and the new SQL surface - and the full list of migration breakers to check before upgrading.

Databases
PostgreSQL REPACK - reclaiming space without the lockintermediate

How PostgreSQL reclaims dead-tuple space by rewriting a table - the pg_repack extension's trigger-and-log-table mechanism that carried PG 15-18, and the native REPACK command landing in PG 19 that replaces the trigger with logical decoding.

Databases
PostgreSQL 19 replication - WAIT, sequences and subscriptionsintermediate

PostgreSQL 19's replication changes - the WAIT command for read-your-writes on standbys, logical replication of sequences, the publication EXCEPT clause, retain_dead_tuples conflict detection, and wal_level replica gaining logical capability on demand.

Databases
PostgreSQL 19 autovacuum - parallel workers and the scoring systemintermediate

What PostgreSQL 19 changes in autovacuum - parallel index vacuuming controlled by autovacuum_max_parallel_workers, a five-component scoring system that decides which tables get vacuumed first, and the new monitoring surface around it.

Databases
MariaDBintermediate

MariaDB Server in practice - where it has diverged from MySQL, choosing a storage engine, InnoDB durability settings, replication, and Galera's real cost.

Databases
PostgreSQL 19 asynchronous I/O - worker autoscaling and read-aheadintermediate

What PostgreSQL 19 changes in the asynchronous I/O subsystem that arrived in 18 - I/O workers that scale themselves between io_min_workers and io_max_workers, better read-ahead scheduling for large requests, and the EXPLAIN IO output that shows it working.

Databases
PostgreSQL 19 monitoring - new views, wait events and log controlsintermediate

A diagnostic runbook for what PostgreSQL 19 adds to the monitoring surface - pg_stat_lock, pg_stat_recovery, new wait events, per-process-type log levels, stats_reset columns, WAL full-page-image bytes and the wraparound warning change - with the queries to use them.

Databases
PostgreSQL 19 plan advice - pg_plan_advice and pg_stash_adviceadvanced

PostgreSQL 19's answer to plan instability - the pg_plan_advice module that turns planner decisions into an editable advice string, and pg_stash_advice which applies that advice automatically per query ID, with the failure modes of each.

Databases
PostgreSQL 19 - new SQL and COPY surfaceintermediate

The SQL surface PostgreSQL 19 adds - INSERT ON CONFLICT DO SELECT, window IGNORE NULLS, COPY TO JSON and partitioned tables, GRANTED BY, CHECK constraint enforcement toggles, oid8, jsonpath methods and the new encodings. Performance and I/O changes have their own page.

Databases
PostgreSQL 19 maintenance extensions - pg_visibility, pg_surgery, pg_prewarm, pgrowlocksadvanced

The contrib modules that inspect and repair what PostgreSQL 19's maintenance changes touch - pg_visibility for the visibility map that scans now write, pgrowlocks for per-row lock detail under pg_stat_lock, pg_surgery for the corruption cases that block vacuum, and pg_prewarm for cache warmup. None changed in 19; all are more relevant because of it.

Databases
MySQLintermediate

MySQL in production - InnoDB buffer pool, redo and undo, REPEATABLE READ and gap locks, GTIDs and Group Replication, and the 8.4 default changes.

Databases
MongoDBintermediate

Document modelling as physical design, replica set write and read concerns, shard key selection, compound index prefixes, and the aggregation pipeline.

Databases
SQL Serverintermediate

SQL Server edition limits that decide architecture - memory and core caps, Always On versus FCI, RCSI and tempdb, Query Store, core-based licensing.

Databases
pgvectorintermediate

Vector similarity search in PostgreSQL - where the data physically lives across heap, TOAST and index, how HNSW and IVFFlat retrieve it, and how pgvector serves as the memory layer in a RAG or agent system.

Databases
DynamoDBintermediate

Amazon DynamoDB in practice - the partition key contract, consistency options, secondary indexes, transactions, and what throttling actually means.

Databases
TimescaleDBintermediate

TimescaleDB as a PostgreSQL extension - hypertables and chunks, continuous aggregates, compression, retention, and what being an extension buys and costs.

Databases
InfluxDBintermediate

InfluxDB 3 in practice - measurement/tag/field model, the Arrow rebuild, SQL querying, Core versus Enterprise, and tag cardinality as the classic way to take it down.

Databases
CouchDBintermediate

Apache CouchDB in practice - MVCC revision tokens, bidirectional replication as the core feature, Mango queries and views, and multi-master conflict reality.

Databases
Milvusintermediate

Milvus in practice - collections and partitions, index types for vector search, tunable consistency, the disaggregated Kubernetes architecture, and what running it actually costs.

Databases
Memcachedintermediate

Memcached in practice - the slab allocator, LRU eviction, client-side sharding, the cas primitive, and why having no replication is a feature.

Databases
Snowflakeintermediate

Snowflake in practice - storage/compute separation, micro-partitions and pruning, virtual warehouses, zero-copy clone, time travel, and the consumption billing model that shapes everything.

Databases
Oracle Databaseintermediate

Oracle Database in practice - the converged engine, CDB/PDB multitenancy, RAC shared-everything scaling, Data Guard, and the licensing reality that shapes every decision.

Databases
Qdrantintermediate

Qdrant in practice - collections and points, HNSW plus quantisation, payload-filtered search, cluster mode with Raft, and why it is the middle ground between pgvector and Milvus.

Databases
Valkeyintermediate

Valkey in practice - the Linux Foundation Redis fork, wire compatibility, what diverged since 7.2, the migration path, and when to pick it over Redis.

Databases
Choosing a relational databaseintermediate

PostgreSQL, MySQL, MariaDB or SQL Server. Operational expertise, licence cost and the one feature you actually need decide it, not the feature matrix.

Decision Guides
Pooling and failover topologyintermediate

PgBouncer, Pgpool-II, or PgBouncer with Patroni and HAProxy. Which of pooling, read routing and automatic promotion you actually need decides it.

Decision Guides
Choosing a vector storeintermediate

pgvector, Qdrant, Weaviate or Elasticsearch. Whether you already run PostgreSQL, and how you filter, decide it - not throughput charts.

Decision Guides
PgBouncerintermediate

PostgreSQL connection pooling with PgBouncer - pool modes and what each one breaks, sizing the pool, secure auth_query, and running it multi-core.

Middleware
Pgpool-IIintermediate

Pgpool-II in practice - clustering modes, how load balancing decides where a SELECT goes, watchdog quorum, failover, and the diagnostics.

Middleware
Patroniadvanced

How Patroni fails PostgreSQL over - the DCS leader lock, the ttl/loop_wait/retry_timeout rule, watchdog fencing, and a runnable three-node config.

Middleware
keepalivedintermediate

VRRP master election in keepalived - a runnable two-node config, the weight arithmetic people get wrong, and why it fails on cloud networks.

Middleware
HAProxy for PostgreSQLadvanced

A runnable HAProxy configuration for a three-node Patroni cluster - mode tcp, Patroni HTTP health checks, timeouts for long-lived sessions, and draining.

Middleware
etcdadvanced

Raft, quorum and leases in etcd, the fsync latency budget that decides cluster stability, and the space-quota outage - compaction, defragmentation, recovery.

Middleware
Prometheusadvanced

The pull model, why a label set defines a time series and cardinality kills servers, histogram versus summary, rate() correctly, and Alertmanager routing.

Middleware