The article library
73 articles so far. One idea at a time.
- spring-architecture
Give Controllers, Services and Repositories Clear Responsibilities
A deep dive into responsibility allocation using a warehouse dispatch scenario to separate HTTP translation, business orchestration, and persistence.
Read the article - java-fundamentals
Use the Observer Pattern When Notifications Need Subscribers
A deep dive into managing local subscribers, lifecycle leaks, and failure handling in a desktop music player scenario.
Read the article - spring-architecture
Why Value Collections and Associations Need Extra Tables
Deep dive into @ElementCollection, embeddables, and the structural difference between value types and entities in JPA.
Read the article - meta
Welcome to this learning blog
How this site works and how to publish the same article in English, French, and Arabic.
Read the article - java-fundamentals
Java Type Identity Depends on Packages and Class Loaders
Explaining why classes with identical names are distinct types and how to handle boundary-safe mapping.
Read the article - system-design
Use Redis Cache-Aside Without Serving Incorrect Data
A deep dive into the Cache-Aside pattern to manage cinema screening data while preventing stale reads and cache stampedes.
Read the article - persistence
Design and Read B-Tree Indexes for Real Queries
Deep dive into B-Tree mechanics, composite index ordering, and selectivity for audit-log query optimization.
Read the article - database-design
Design DTOs and Mappings Around an API Contract
Learn to decouple internal database entities from external API contracts using Java Records and mapping strategies to control data visibility and editability.
Read the article - web-communication
Understand Origins, CORS and Browser-Enforced Access
A deep dive into the Same-Origin Policy, preflight mechanisms, and the critical distinction between CORS and authentication.
Read the article - deployment-devops
Place Kubernetes in the Deployment Architecture
Distinguishing container packaging from orchestration and implementing a stateless map-tile API deployment with Services.
Read the article - deployment-devops
Use Git for History and GitHub for Collaboration
Distinguishing local version control from remote hosting through a community directory scenario.
Read the article - backend-testing
Test Create, Update and Delete as Observable Behaviors
A deep dive into Arrange-Act-Assert for Create, Update, and Delete operations using a reading-list service scenario.
Read the article - architecture-boundaries
Choose Module Boundaries Before Choosing Microservices
A deep dive into cohesion, coupling, and the transition from modular monoliths to microservices using a travel booking scenario.
Read the article - maven-debugging
Understand Maven Lifecycle Commands and Build Artifacts
A deep dive into Maven phases, the target folder, and the distinction between unit and integration test reports.
Read the article - persistence
Primary Keys, Foreign Keys and Unique Constraints Protect Different Facts
Distinguishing row identity from business uniqueness and referential integrity in PostgreSQL and JPA.
Read the article - security
Model Roles and Permissions Without Losing Resource Ownership
Implementing a hybrid RBAC and ABAC model to handle role-based access and specific resource ownership in a museum context.
Read the article - java-fundamentals
Checked and Unchecked Exceptions Express Handling Contracts
A deep dive into Java exception hierarchies to distinguish between recoverable business failures and programming errors using an import tool scenario.
Read the article - spring-architecture
Follow a JPA Entity from Java State to SQL
A deep dive into the Hibernate persistence lifecycle, entity states, and the mechanics of how Java objects become database rows.
Read the article - engineering-foundations
From a Blank Project to a First Working Feature
Build a one-page delivery plan around evidence, explicit assumptions and a demonstrable first feature.
Read the article - system-design
Use Circuit Breakers to Contain Dependency Failures
Learn how to prevent cascading failures in distributed systems using the Circuit Breaker pattern to manage unstable dependencies.
Read the article
No articles match. Try a different search.