Not enough information to do the right thing.
Not enough resources to execute in the right way.
And external factors influence fhe final outcome.
So plan, design, and code for as far as you can see, but no further.
Not enough information to do the right thing.
Not enough resources to execute in the right way.
And external factors influence fhe final outcome.
So plan, design, and code for as far as you can see, but no further.
Let the problems drive that decision.
In reality, most of us will rarely justify the use of microservices.
Let the problems drive that decision.
In reality, most of us will rarely justify the use of microservices.
But when coding, do it in small, frequent batches, enabling ease of change.
But when coding, do it in small, frequent batches, enabling ease of change.
DDD allows for only single aggregate manipulation per transaction.
Use the outbox pattern to continue the logic.
DDD allows for only single aggregate manipulation per transaction.
Use the outbox pattern to continue the logic.
Instead, return quickly with a JobHandle object, that can be used to track the progress of the job.
Instead, return quickly with a JobHandle object, that can be used to track the progress of the job.
Don't introduce new dependencies for this.
Don't introduce new dependencies for this.
They are derived technology from the OS.
And you'll understand them deeper by knowing Linux.
They are derived technology from the OS.
And you'll understand them deeper by knowing Linux.
- Am I missing a concept in this context?
- Should I sync it locally (through events), or fetch it everytime?
- Do I have the right model?
- Am I missing a concept in this context?
- Should I sync it locally (through events), or fetch it everytime?
- Do I have the right model?
Even if it's a tiny change.
That way you can verify no business constraint is broken.
You can always optimize this later on.
Even if it's a tiny change.
That way you can verify no business constraint is broken.
You can always optimize this later on.
Their logic has nothing in common with the back-end's business logic.
Often it's even conflicting.
This is your start towards CQRS.
Their logic has nothing in common with the back-end's business logic.
Often it's even conflicting.
This is your start towards CQRS.
Use: Request, Details, Configuration, Payload, Result, Specification, Item, Summary, ...or whatever this DTO actually represents.
Use: Request, Details, Configuration, Payload, Result, Specification, Item, Summary, ...or whatever this DTO actually represents.
You'll have cleaner Services, and you won't forget to do it.
You'll have cleaner Services, and you won't forget to do it.
If the logic becomes too complex, try to split it into multiple endpoints, with the front-end ensuring the whole workflow completes.
If the logic becomes too complex, try to split it into multiple endpoints, with the front-end ensuring the whole workflow completes.
Only task-based UIs can specify "intent".
Only task-based UIs can specify "intent".
Don't fit everything into a single "service" class.
Don't fit everything into a single "service" class.
It will reveal many subtle details on how the system should work.
It will reveal many subtle details on how the system should work.
Use an event when you want to inform of a change, but don't care who gets it.
Use an event when you want to inform of a change, but don't care who gets it.
Define different "actors" for the different contexts that User can be in. (e.g. Account, Employee, Profile, ...)
Define different "actors" for the different contexts that User can be in. (e.g. Account, Employee, Profile, ...)
Bad interfaces "update" objects.
Bad interfaces "update" objects.
The owner of queries is the front-end.
The owner of queries is the front-end.