Poslednich par stranek je rozprava o tom jestli je lepsi poslani zpravy nebo zavolani metody. Jednak u toho litaji ruzny interpretace, jednak jestli to bezi uvnitr pocitace nebo vne mezi pocitaci. Bylo by to fajn klasifikovat.
Podobna debata by mohla byt nad tvrdou konzistenci a eventualni konzistenci (eventual consistency). Poslani zpravy je fire and forget. Erlang system mi da dobrej zaklad postavit microservice system, to jo. Ale tezka cast je udelat v tom skutecne konzistentni system, protoze to je to, co uzivatele nebo programatora, co koordinuje jednotky takovyho systemu, zajima. Nezajima ho, ze nekdy ta zprava nekdy dorazi, nekdy mozna ne. Tvrde konzistentni system je RPC nebo taky jinak receno 'zavolani metody' neboli dve zpravy, jedna odesilajici request a druha prijimajici response, obe provazany nejakym reauest-id.
Problem s microservices je matematicka nemoznost provest exactly-once-delivery s omezenou pameti.
Takze posilani zprav je jen potencialni prvni krok k tomu dostat se k nejakymu funkcnimu systemu. Chapu, kdyz se s Erlangem/Elixirem nekdo uci, tak je to ze zacatku wow.
Pokusy v posledni dobe vytvorit NoSQL eventual consistency databaze spadly na hubu, nikdo je nechce pouzivat a ted Google prisel se Spannerem, kterej dela tvrdou konzistenci napric kontinenty diky tomu ze na to ma dedikovanej hardware.