Siedzę i w ramach wolnego czasu staram się zrozumieć architekturę Flux. Nie rozumiem jednak dwóch rzeczy.

Po pierwsze, czy mogę 'dispatch Action' z poziomu 'Store'? Czasami akcje nie są wywoływane bezpośrednio przez użytkownika z poziomu widoku, ale przez czynniki zewnętrzne. Czasami ogólnie jeden 'Store', w ramach przetwarzania akcji, będzie chciał żeby inny 'Store' też zmienił swój stan. Mogę wysłać wtedy akcje do dispatchera bezpośrednio ze 'Store', czy jest to zła praktyka ?

Po drugie, gdzie umieścić logikę biznesową i I/O. Logicznym dla mnie wydaje się, że to wszystko powinno być wrzucone do 'Store'. Np. wysyłam przykładową akcję 'fetchUserNotes', który następnie trafia do odpowiedniego 'Store', który zajmuje się już całym asynchronicznym pobraniem tych danych, czy to przez REST, czy to z bazy danych. Następnie zmienia stan i powiadamia interfejs o tym, że czas się zaktualizować. W internecie jednak wiele ludzi mówi, że tego typu dostęp powinien odbywać się wewnątrz "ActionCreator", co dla mnie jest mocno niespójne.

Implementuję aplikacje w QML/Qt/C++, więc pytanie odnosi się do ogólnej filozofii tej architektury, nie do żadnej konkretnej implementacji.