This paper presents Discourje: a runtime verification framework for communication protocols in Clojure. Discourje guarantees safety of protocol implementations relative to specifications, based on an expressive new version of multiparty session types. The framework has a formal foundation and is itself implemented in Clojure to offer a seamless specification–implementation experience. Benchmarks show Discourje’s overhead can be less than 5% for real/existing concurrent programs.

doi.org/10.1007/978-3-030-45190-5_15
Lecture Notes in Computer Science/Lecture Notes in Artificial Intelligence
International Conference on Tools and Algorithms for the Construction and Analysis of Systems
Centrum Wiskunde & Informatica, Amsterdam, The Netherlands

Hamers, R, & Jongmans, S.-S.T.Q. (2020). Discourje: Runtime verification of communication protocols in clojure. In Lecture Notes in Computer Science/Lecture Notes in Artificial Intelligence. doi:10.1007/978-3-030-45190-5_15