YAGNI means “You aren’t going to need it.” Avoid functionality and complexity until they are needed, reducing unused code, maintenance, and future changes. section 3.2.2
Apply YAGNI by asking what the project needs now:
- Prefer the smallest useful implementation over speculative features. section 3.2.2
- Question infrastructure that is not yet required; file storage or in-memory data may be enough when a database is unnecessary. section 3.2.2
- Keep an existing PostgreSQL requirement when it already belongs to the application, even if the current feature set is small. section 3.2.2
A deliberately small database setup
An ACH-processing project may eventually store ACH files and related data in PostgreSQL. Instead of adding every possible service, start with a simple PostgreSQL container and connect to it with CloudBeaver. Add data loading and further services only when the workflow needs them. section 3.2.2
Listing 3.4 Multiple containers generated by ChatGPT
version: '3.8'
services:
cloudbeaver:
image: dbeaver/cloudbeaver:latest
container_name: cloudbeaver
depends_on:
- postgres
ports:
- "8080:8978"
environment:
- CB_DATABASE_URL=jdbc:postgresql://postgres:5432/postgres
- CB_DATABASE_USERNAME=postgres
- CB_DATABASE_PASSWORD=postgrespwd
postgres:
image: postgres:latest
container_name: postgres
environment:
POSTGRES_DB: postgres
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgrespwd
volumes:
- postgres_data:/var/lib/postgresql/data
ports:
- "5432:5432"
volumes:
postgres_data
Compare the generated multi-container configuration with a smaller setup to identify infrastructure that YAGNI would defer. section 3.2.2


