read.mir0n.pro
I am Yuri Miroshnikov,
founder and sole developer of Esquire Application Frameworks for backoffice systems. It is running, and every article here links into it.
The entity model behind it has been in production in a foreign-exchange trading business for twenty-five years. I wrote it from scratch in 2000, and it grew from two tiers and five hundred accounts into a globally distributed platform carrying millions. The storage engine was replaced, the architecture generation replaced twice, the regulatory surface changed, the company changed its brand. The way entities are structured and positioned did not change. The screens were server-defined throughout, from a dictionary: first in PowerBuilder PFC, then MFC, then DevExpress, now Angular. Esquire is a new implementation of that model: the twenty-five years belong to the idea, not to this code.
On this page I write about the parts of the Esquire work that are arguments rather than features: what I found reading other people's code, what the measurements said, and where my own system does not do what I say it does.
-
A missing filter looks exactly like a correct query
Seven codebases that scope permissions by hierarchy. In four of them the scope can be forgotten, and a query missing it looks like a correct query. Including the one I found in my own.
-
Decomposition is not microservices
Two decisions got welded together. Where the seams are is design; how many programs you ship is deployment. Folding eight programs into five changed nothing for most requests — and the two that stopped crossing the network gained 54% and 82%.
-
An environment for Domain-Driven Design
DDD tells you what to build, not where to build it. Identity, permissions, audit, messaging, and storage arrive built and joined — against one constraint on your model: every entity has a position in the tree.
-
Server-defined UI is not a legend (draft)
The form builders that scarred everyone were describing screens. Describe the entity instead, keep the vocabulary small enough to finish, and let a real application do the drawing.