@edmulraney from what I understand of CSP, it's a protocol / wiring while TLA+ defines a programming model. So any node participating in CSP would have a TLA entry point (request = action, response = state representation). Obviously the CSP wiring has some great properties, CQRS (as wiring) also has some great properties, different from CSP. IMHO, they are complementary and you should be careful not using a "wiring" paradigm as your programming model though it has been a trend (e.g. Cycle.js uses RxJS as a programming model when it's nothing more than some (nice) wires).