Fieldy wykorzystujące cache

Pierwsze rozwiązanie na pewno nie wchodzi w grę… A z drugiej strony rozwiązanie z transakcjami to baaardzo duży refactor. Podejście z two-phase commit nie będzie konieczne, jeżeli przeskoczymy na wersję beta mongo, która umożliwia transakcje na wielu dokumentów :smiley:

Generalnie Sealious jest w wielu miejscach nieodporny na problemy związane z atomowością transakcji… Uważam, że najlepiej rozwiązać to w nowym tasku, przy użyciu mongowych transakcji. Wyobrażam sobie to tak, że nowa transakcja jest wywoływana za każdym razem, kiedy tworzymy nowy kontekst, i zamykana po jego zużyciu :slight_smile:

A cached field zróbmy wcześniej, bo i tak nie jesteśmy w innych miejscach odporni na atomość


Co do aktualizacji timestampa - uważam, że powinniśmy przechowywać informacje o ostatniej aktualizacji cache’u nie w last_modified_context.timestamp, ale w samym polu, tzn:

{
	body: {
		cached_field: {
			last_updated: 1522614683670,
			value: "cached value"
		}
	}
}

I oczywiście zwracalibyśmy w body zasobu tylko value, z pominięciem last_updated.