3 ms·
Event-Driven software comes up on many of my projects. What I find works well is using command-query separation (CQS, CQRS) to start because CQS is a lever into
by jph 10y ago
Event-Driven software comes up on many of my projects. What I find works well is using command-query separation (CQS, CQRS) to start because CQS is a lever into two complementary ideas: backend implementation and continuous improvement.
The backend implementation ideas involve REST, caching, replication, eventual consistency, CAP, and especially PACELC.
The continuous improvement ideas involve upgrading existing software projects from imperative styles to functional styles, phasing in publish-subscribe modules, growing codebases to be more event-driven, and planning for evolutionary architecture.
In practice, I see these areas need management help, such as funding and time for training, and help for teams creating infrastructure as code (IaC) to deploy many event-oriented modules as well as event monitoring and management.
Related links:
https://en.wikipedia.org/wiki/Command-query_separation https://en.wikipedia.org/wiki/Command-query_separation
https://www.wikipedia.org/wiki/REST https://www.wikipedia.org/wiki/REST
https://www.wikipedia.org/wiki/PACELC_theorem https://www.wikipedia.org/wiki/PACELC_theorem
https://www.wikipedia.org/wiki/Publish-subscribe_pattern https://www.wikipedia.org/wiki/Publish-subscribe_pattern
https://www.wikipedia.org/wiki/Infrastructure_as_Code https://www.wikipedia.org/wiki/Infrastructure_as_Code
- sethammons 10y agoI had not heard of PACELC and was excited to hear something new, only to see it as a very natural extension of CAP. It reminds me of, back in math class, you would learn of a new theorem that was only different than another because they singled out a particular case, like for 1 or 0 :)
- sundvor 10y agoI hadn't heard of either, but they both make perfect sense - so I for one say thanks for that great post. :-) Did study up on CQRS/ES year and found it very exciting.