diff --git a/docs/adr/01-cryptographic-libraries.md b/docs/adr/01-cryptographic-libraries.md new file mode 100644 index 00000000..527ce835 --- /dev/null +++ b/docs/adr/01-cryptographic-libraries.md @@ -0,0 +1,9 @@ +# Cryptographic libraries + +## Decision + +This project tries to avoid implementing cryptographic primitives, favouring the reuse of existing, well-tested libraries. + +## Rationale + +Cryptography is hard to get right and making a mistake when implementing a cryptographic primitive will have serious implications for the security of protocols that build upon those primitives. \ No newline at end of file diff --git a/docs/adr/02-test-coverage.md b/docs/adr/02-test-coverage.md new file mode 100644 index 00000000..30fbd1df --- /dev/null +++ b/docs/adr/02-test-coverage.md @@ -0,0 +1,9 @@ +# Test coverage + +## Decision + +This project will aim for >70% test coverage overall + +## Rationale + +A high degree of test coverage leads to more robust code and given our use of AI assisted programming helps to reduce the effect of hallucination. \ No newline at end of file diff --git a/docs/adr/03-any.md b/docs/adr/03-any.md new file mode 100644 index 00000000..c81e8481 --- /dev/null +++ b/docs/adr/03-any.md @@ -0,0 +1,12 @@ +# any instead of interface{} + +## Decision + +We use the newer 'any' instead of 'interface{}' to represent a value that can have any type. + +## Rationale + +- Functionality: Both any and interface{} can hold values of any type. +- Interchangeability: They can be used interchangeably in code. +- Readability: any is generally considered more readable, especially for newcomers to Go. +- Compiler treatment: The compiler treats them identically. \ No newline at end of file diff --git a/docs/adr/04-ttlcache.md b/docs/adr/04-ttlcache.md new file mode 100644 index 00000000..55c9bb69 --- /dev/null +++ b/docs/adr/04-ttlcache.md @@ -0,0 +1,9 @@ +# Caching + +## Decision + +We use the ttlcache library to provide caching across the project + +## Rationale + +A single implementation of a central concept serves to simplify the code and make caching behaviour more consistent \ No newline at end of file diff --git a/docs/adr/README.md b/docs/adr/README.md new file mode 100644 index 00000000..74ce5875 --- /dev/null +++ b/docs/adr/README.md @@ -0,0 +1,5 @@ +# ADR + +This directory contains the architectural decision records for the vc project + +About ADRs: https://github.com/joelparkerhenderson/architecture-decision-record?tab=readme-ov-file#what-is-an-architecture-decision-record \ No newline at end of file