~/blog/tags/software-architecture
#software-architecture
6 posts · all posts
- php
- software-architecture
- symfony
- doctrine
- backend-development
- performance
- refactoring
- authorization
- best-practices
- caching
- clean-code
- containers
- database
- devops
- devsecops
- distributed-systems
- docker
- idempotency
- legacy
- maintainability
- production
- redis
- reliability
- scalability
- secure-design
- security
- shift-left
- testing
- threat-modeling
Posts
When Symfony Messenger Is the Wrong Tool
Symfony Messenger is powerful, but not every slow operation needs a queue. I explore six situations where asynchronous processing creates more problems than it solves, covering transactions, retries, idempotency, and simpler alternatives with practical PHP examples.
#php #symfony #software-architecture #best-practices #backend-development
15 min
Why Moving Code into a Service Doesn’t Improve the Design by Itself
Moving code into a service can shrink a controller without fixing the design. This article looks at responsibilities, dependencies, transaction boundaries, side effects, and tests that show whether a refactor created a meaningful boundary.
#php #symfony #software-architecture #refactoring #doctrine #clean-code
6 min
Why I Shift Security Decisions Left, Not Just Security Checks
Shifting security left means more than running scanners earlier. It means making authorization, data-flow, and execution decisions early enough to shape the design before they become expensive to change.
#security #shift-left #secure-design #threat-modeling #authorization #software-architecture #backend-development #devsecops
6 min
The Hidden Cost of `flush()` in a Symfony Application
Doctrine’s flush() can affect much more than the entity a repository appears to save. This article looks at Unit of Work behavior, transaction boundaries, lifecycle listeners, batch processing, failed flushes, and how to make persistence boundaries easier to understand and operate safely.
#php #symfony #doctrine #database #software-architecture
6 min
The First Refactor I Make in a Legacy PHP Application
A practical approach to the first refactor in a legacy PHP application: isolate important behavior, preserve existing semantics, add focused tests, and create a safer starting point for future changes.
#php #legacy #refactoring #software-architecture #testing #maintainability
5 min
The Most Dangerous Button in an Admin Panel Is “Retry”
A practical look at why retrying a failed operation can be dangerous. This article explores uncertain outcomes, stable operation identities, concurrent retries, multi-step workflows, safe recovery actions, and how to test the failure cases that matter.
#php #software-architecture #reliability #idempotency #distributed-systems
6 min