Grounded on years of experience in formal methods and software engineering at Microsoft Research, Coyote's inspiration springs from recognizing the ironic absence of tooling for developing concurrent systems.
Despite concurrency being a fundamental paradigm of computer science (all layers of a computer system are concurrent, starting from the hardware to the operating system, to applications, distributed systems, and cloud) not much attention has previously been given to the problem of testing these systems for correctness. Current practices dictate that unit tests be deterministic, often leading to the oblique art of stress testing to weed out bugs.
Our initial thinking was to simply build tools focused on testing, but we quickly realized any technique focused only on testing would have severely limited value: developers want to write elegant, correct, and performant code on the first go—they don't want to be tracing buggy interleavings late into the wee hours.
With this broader vision, Coyote's programming models marry design, implementation, and testing for remarkable productivity. Coyote is the evolution of the P# project that got us started on this journey, building over years of research in concurrency design and implementation bugs.
From the moment various Azure teams began using Coyote, we've been receiving enthusiastic feedback. What started as one service built with Coyote has now expanded to more than ten and growing.
We would love to make you a part of our story—join our developer community today.