From 5ff4845f41279ccefe67d0a37fa954ee55fd47d1 Mon Sep 17 00:00:00 2001 From: Richard Newman Date: Thu, 26 Jan 2017 13:36:50 -0800 Subject: [PATCH] Updated Transacting: upsert resolution algorithm (markdown) --- Transacting:-upsert-resolution-algorithm.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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.