Aims of CorDap Design Language
In summary, CorDapp Design Language should:
- Allow CorDapp designs to be represented in an accurate, clear and concise way to aid common understanding and reasoning over the design.
- Describe and enable reasoning about key aspects of CorDapp design:
- Shared data and state
- Shared processing logic
- Permissioning (via digital signatures)
- Privacy (Visibility of data to different participants)
- Draw a clear distinction between Ledger Layer and Orchestration Layer functionality.
- Cope with increase complexity, importantly the design language must not scale in complexity faster than the underlying application that the Model is representing.
- Degrade gracefully and accurately. Not all aspects of the notations should be compulsory, but where details are left off the remaining diagram should remain accurate and self consistent for the level of detail chosen.
- Minimised new representation techniques by reusing and extending existing architecture and design techniques.
- Allows standardised representation of reusable design patterns, including techniques for managing complexity.