4 ms·
Yeah, not sure how this would work with any workflow that caLLs out to another service and uses the result of that to determine the next step, if that intermedi
by cortesoft 5y ago
Yeah, not sure how this would work with any workflow that caLLs out to another service and uses the result of that to determine the next step, if that intermediate call changes state somewhere.
- dundarious 5y agoThen you can only really dry run that first phase anyway.
- minitoar 5y agoIndeed, the other service then needs to support dry runs.
- ItsMonkk 5y agoI think a large part of the next 10 years is us figuring out that frameworks are an anti-pattern and that everything is going to have to move to libraries that abide by CQRS.
- rocqua 5y agoDid not know what CQRS is, did some light googling[1]: CQRS (Command and Query Responsibility Segregation) is an alternative to a simple CRUD-based database interface. CQRS separates reads and writes into different models, using commands to update data, and queries to read data. Commands should be task-based, rather than data centric. ("Book hotel room", not "set ReservationStatus to Reserved"). Commands may be placed on a queue for asynchronous processing, rather than being processed synchronously. Queries never modify the database. A query returns a DTO that does not encapsulate any domain knowledge. The models can then be isolated, as shown in the following diagram, although that's not an absolute requirement. [1]
- faizshah 5y agoI really like this book on CQRS & ES: https://www.amazon.com/Practical-Microservices-Event-Driven-Architectures-Sourcing-ebook/dp/B0899K5R4P https://www.amazon.com/Practical-Microservices-Event-Driven-... It’s a really practical treatment of CQRS & ES with JS examples. I had heard about CQRS & ES on HN for years but I had never seen any system that actually used it or any practical examples so this book is amazing cause it takes you through how to build a system using them.
- bcbrown 5y agoAre you worried about that intermediate call changing between the dry run and the actual run? That can be avoided by saving the execution plan and allowing the actual run to load the execution plan from the dry run.