
Ask HN: Is there a way to systematically approach concurrent designs? - arduinomancer
I&#x27;m finding with concurrent designs I&#x27;m never really sure I&#x27;m not missing some special case or race condition.<p>Has anyone come across a systematic way to approach the problem and say &quot;Yes this design will have no concurrency issues&quot;<p>For example: &quot;If you check off this checklist of items you know your design will work&quot;
======
itamarst
Formal methods can let you run your design through a checker that will prove
it's correct. Hillel Wayne has blog posts, talks, and a book
([https://www.apress.com/us/book/9781484238288](https://www.apress.com/us/book/9781484238288))
about this: [https://www.hillelwayne.com/](https://www.hillelwayne.com/)

Some services at AWS have been designed this way:
[https://lamport.azurewebsites.net/tla/formal-methods-
amazon....](https://lamport.azurewebsites.net/tla/formal-methods-amazon.pdf)

------
verdverm
Not really, concurrency is a hard verification problem. It depends on the
system which the concurrency is built. Is it a single program or cloud based?
what language, libraries, tech?

There will be tools to help depending on the setup. There are also paradigms
like Communication Sequential Processes that can make things easier to reason
about. (i.e. CSP vs shared-memory)

