# Client-centric models

## Eventual consistency

<figure><img src="https://2387753953-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9sVneYw7epWOEEPKsfCf%2Fuploads%2Fl3bnWNXJ1b8vPxJWzvfA%2Fa.png?alt=media&#x26;token=d0ae3351-cd3d-4c24-852a-156992c55863" alt=""><figcaption></figcaption></figure>

## Monotonic readings

If a process reads the value of a given *x*, **any successive reading operation over&#x20;*****x*****&#x20;by the same process will return the same value or a more recent one**.

<figure><img src="https://2387753953-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9sVneYw7epWOEEPKsfCf%2Fuploads%2FxWacUoM5ZeGsuUjxcsga%2Fa.png?alt=media&#x26;token=f4cc4203-2bf0-42bd-bedc-ab9c6631460d" alt=""><figcaption><p>Monotonic reading</p></figcaption></figure>

<figure><img src="https://2387753953-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9sVneYw7epWOEEPKsfCf%2Fuploads%2FF3rcCMba4I5WLBICGze9%2Fa.png?alt=media&#x26;token=4ac56199-3c26-4390-be2e-054c075042f4" alt=""><figcaption><p>Non-monotonic reading</p></figcaption></figure>

## Monotonic writings

A process writing operation in *x* is completed before **any successive writing operation on&#x20;*****x*****&#x20;by the same process**.

<figure><img src="https://2387753953-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9sVneYw7epWOEEPKsfCf%2Fuploads%2FSAlHjH2NZwU1DeMlWwxq%2Fa.png?alt=media&#x26;token=814f0f11-7395-4185-8a9f-f788fbccd187" alt=""><figcaption><p>Monotonic write</p></figcaption></figure>

<figure><img src="https://2387753953-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9sVneYw7epWOEEPKsfCf%2Fuploads%2FH06JLL56bTwgbgD1ARTi%2Fa.png?alt=media&#x26;token=cf18b39a-12f2-4f39-b7cb-179008903375" alt=""><figcaption><p>Data store does not make consistency available by monotonic writing</p></figcaption></figure>

<figure><img src="https://2387753953-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9sVneYw7epWOEEPKsfCf%2Fuploads%2FLVrNtKLupJmTPzkSb41J%2Fa.png?alt=media&#x26;token=e99f8f0b-ec69-4627-81a5-a96934f0143a" alt=""><figcaption><p>Whitout consistency by monotonic writing</p></figcaption></figure>

<figure><img src="https://2387753953-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9sVneYw7epWOEEPKsfCf%2Fuploads%2FbwRk6M3zrlEmOKILspKV%2Fa.png?alt=media&#x26;token=3d2376dd-21ae-4dad-aec8-6f923f95d92c" alt=""><figcaption><p>Consistent because <em>WS(x1, x3)</em> although <em>x1</em>, aperantly, overides <em>x2</em> </p></figcaption></figure>

## Reading after writing

The effect of a process writing operation over data *x* will always be seen by the same process following reading operations over *x*.

<figure><img src="https://2387753953-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9sVneYw7epWOEEPKsfCf%2Fuploads%2Fcn6uk9hJZi3dxDeljrC2%2Fa.png?alt=media&#x26;token=e05b3815-033e-4b1e-b305-92354b390996" alt=""><figcaption><p>Read after consistent write</p></figcaption></figure>

<figure><img src="https://2387753953-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9sVneYw7epWOEEPKsfCf%2Fuploads%2FF581ikgi6U5PC1iFHks9%2Fa.png?alt=media&#x26;token=72bcd8ee-831d-464a-8e22-ae01ba9e3d88" alt=""><figcaption><p>Non-consistent</p></figcaption></figure>

## Writing after reading

A process's writing operation over x data after a previous reading operation over x by the same process is guaranteed to occur over the same *x* value.

<figure><img src="https://2387753953-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9sVneYw7epWOEEPKsfCf%2Fuploads%2F109NcC7oaamf4KqySeYK%2Fa.png?alt=media&#x26;token=100434b8-c22e-4817-8adb-ae71f787af6b" alt=""><figcaption><p>Write after consistent read</p></figcaption></figure>

<figure><img src="https://2387753953-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9sVneYw7epWOEEPKsfCf%2Fuploads%2FnjRz1TonjtBv1xC98e5e%2Fa.png?alt=media&#x26;token=8d1f6051-9e36-476e-bb59-dae7f930f795" alt=""><figcaption><p>Non-consistent</p></figcaption></figure>
