Scott has over 20 years experience in software development, design and architecture, covering all aspects of business software. He is the creator of the popular F# web site, fsharpforfunandprofit.com, and has done many F# presentations at conferences and user-groups around the world.
In this talk I'll look at a unusual approach to designing internal interfaces and external APIs -- a "capability-based" approach that takes the Principle Of Least Authority and applies it to software design.
When this approach is used, it produces a robust and modular design which captures the domain constraints, resulting in an API which is self-documenting and hard to misuse.
I'll demonstrate how to design and implement a capability based approach, how capabilities can be quickly combined and restricted easily, and how capabilities are a natural fit with a REST API that uses HATEOAS.