V aplikacii ktora funguje na principe eventualnej konzistencie, teda vykonana akcia sa neprejavi okamzite na reade, sa v praxi stane ze napriklad uzivatel vytvori clanok a je presmerovany na zoznam svojich clankov, kde vsak tento novy clanok este nebude. Musi teda obnovit stranku, eventualne viac krat, nez sa zmena prejavi.
V CQRS aplikacii ktoru robim je toto dost problem pretoze v mnohych pripadoch, ako vyssie uvedeny, je to velmi neprijemne user experience(UX). Na webe su rozne postupy rieseni, ako je posielat v odpovedi informacie ktore sa vyrenderuju a daju uzivatelovi pocit ze zmena sa prejavila, lenze tento postup je realne nepouzitelny, pretoze by to okrem tvrdej previazanosti na UI taktiez skomplikovalo front-end a akykolvek vyvoj do buducna.
Potom je tu long polling, teda uzivatel vykona akciu ale namiesto presmerovania, z uvedeneho pripadu, na zoznam clankov bude cakat kym sa zmena propaguje a az potom sa presmeruje. Toto zase predstavuje problem s cakanim a navyse ak read server nie je iba jeden, tak sa moze stat ze uzivatel dostane OK od jedneho read serveru, ktory zmenu uz zaznamena, ale po presmerovani uzivatel nacita obsah z ineho read serveru ktory ju este nema.
Dalsia moznost je presmerovat na zoznam clankov s url argumentom ktory na pozadi spusti long polling a automaticky doplni nove data do vypisu. Co je ok az na to ze to nefunguje ak uzivatel pouzije napriklad filter na vypise, kedy server nemoze vediet ci dany clanok ma byt sucastou vysledkov, alebo nie.
Verzia tohto by mohla byt ze akcia vrati id zmeny a po presmerovani na zoznam clankov sa na pozadi spusti dopyt na read server, ktory odosle toto id a ked server toto id lokalne zaznamena, cize zmenu uz ma, tak sa automaticky reloadne obsah stranky(nie plny refresh, len hlavne data na stranke). Cize aj ked ma uzivatel aktivny filter, len sa to reloadne javascriptom a rebuildne(co dnes v pripade reaktivnych JS frameworkov nie je problem).
V kazom pripade, vo vysledku tu je stale neprijemne UX.
Verim ze je tu plno ludi co CQRS riesilo v prevadzke a maju skusenosti z hladiska UI a UX tak by ma zaujimali vase postupy z praxe - co sa vam osvedcilo a td.