To jest bardziej pytanie dotyczące projektowania i najlepszych praktyk. Przekształcam aplikację, aby korzystać z Aktorów i kontraktów terminowych. Obecnie są to warstwy (zanim Akka znajdzie się w miksie).Czy aktorzy Akka mogą zastąpić warstwę usługi?
Play Controller -> Service layer -> (Slick) DAOs
Teraz chcą mieć coś podobnego
Play Controller -> Actors ->Services (Now they'll return Futures) ->DAO
Czyniąc tak jestem od stwierdzenia, że oryginalna warstwa Usługa miał wszystkie metody z wymaganej logiki biznesowej, aktorów warstwa patrzy jak mediatora. Zastanawiasz się, czy jest w porządku (z punktu widzenia projektu), aby pozbyć się warstwy usługi teraz, gdy wszystko będzie przez aktorów?
Play controller->Actors (with business methods) -> business methods calling into DAO (which Service methods were doing before)
Lub kontynuować z istniejącą warstwą Service i używać tych metod tylko od Akka Actors? Ryzyko związane z utrzymaniem warstwy usługi w obecnej postaci, jest takie, że wszystkie metody Usług pozostają publiczne i można je wywoływać z dowolnego miejsca (łamanie schematu, jeśli ktoś nazwał metodę usługi bezpośrednio w kontrolerze (przez przekazanie aktorów) lub coś takiego).
Tylko po to, aby poznać ryzyko związane z konwersją wszystkiego na aktora: http://www.chrisstucchio.com/blog/2013/actors_vs_futures.html –
@ErikAllik: dzięki za link. Nie stosujemy się jednak do tych anty-wzorców wymienionych w poście. Praktyka, którą obserwuję, to to, że nigdy nie używam "dispatchcontext" do uruchamiania jakichkolwiek metod (które powracają kontrakty terminowe) w celu blokowania wywołań db. Blokowanie kontraktów futures zawsze odbywa się na innym przykładzie wykonania. Więc aktorzy zawsze nie blokują. Używam aktorów do celów współbieżności, biorąc pod uwagę niski poziom aktywności Akki i możliwość prowadzenia milionów aktorów w znacznie mniejszej env pamięci i na większą skalę. Chciałbyś usłyszeć swoje doświadczenie w pracy z Akka i spotkałeś się z kimś wymienionym w twoim linku? – user2066049
Jeśli chodzi o użycie wzoru Ask: http://techblog.net-a-porter.com/2013/12/ask-tell-and-per-request-actors/ –