diff --git a/Transacting:-upsert-resolution-algorithm.md b/Transacting:-upsert-resolution-algorithm.md index ae53ab0..32022ab 100644 --- a/Transacting:-upsert-resolution-algorithm.md +++ b/Transacting:-upsert-resolution-algorithm.md @@ -1,4 +1,8 @@ -The goal of the algorithm is to upsert temporary IDs to concrete numeric entids existing in the store where possible, or to determine that this is not possible and to allocate new entids. +The goal of the algorithm is to: + +- Upsert temporary IDs to concrete numeric entids existing in the store where possible. +- To determine that this is not possible and to allocate new entids. +- To determine that the input is inconsistent and fail fast. The metaphor we use is that of _evolution_. At each evolutionary step, a _generation_ contains a number of different _populations_, each population containing a number of different transaction entities. Transaction entities in the process of being resolved are _evolved_ into successively simpler populations, until no further evolution is possible.