Technologia do event sourcingu

0

Hej, chcę wprowadzić do mojego systemu zdarzenia dziedzinowe. Czyli np. jak ktoś zupadtował jakąś encje to jest emitowane zdarzenie new EntityWasUpdatedEvent(id);

Jaką technologię najlepiej do tego użyć ? JMS ?

0

Może kafka? JMS nie używałem, nie mogę porównać
http://kafka.apache.org/

1

Jakie przypadki biznesowe chcesz w ten sposób modelować?. W javie są struktury Queuueueue

1

event sourcing to wzorzec projektowy / paradygmat i nie jest zależne od konkretnej technologii.

Jeśli potrzebna ci dodatkowa technologia to nie dlatego, "no bo event sourcing, ziom" tylko z innych powodów, bo np. musisz bardziej specyficzne problemy rozwiązać związane z przesyłaniem/zapisywaniem etc. eventów (pytanie więc - jakie są to problemy?) I dopiero potem można myśleć o wyborze konkretnej technologii pod problemy, jakie masz/planujesz mieć.

0

Głównie to chciałem do tego, aby moje aplikacja miała bardziej architekturę pluginową niż wywoływała jakieś serwisu po zdarzeniu, bo wydaje mi się to bardziej skalowalne, ale może się mylę to mnie poprawcie.

Załóżmy, mamy taki przypadek, że naliczamy użytkownikowi za coś punkty i sprawdzamy czy osiągnął jakiś próg i jeśli tak to wykonujemy serię jakiś operacji, np wysyłamy powiadomienie firebasem do aplikacji klienckiej i coś tam jeszcze:

user.addPoints(10);
if(user.hasNextLevel()) {
    firebaseService.sendUserHasNextLvl(user.getId());
    otherService1.something();
    //etc
}

A z event sourcingiem miałbym po prostu tak, że w metodzie addPoints byłoby dodanie tych punktów, sprawdzenie czy osiągnięto próg i wyemitowanie zdarzenia. I każdy kto potrzebuje by się zasubskrybował.

0

Te plugin będą osadzone w twojej aplikacji, to będzie jeden JVM, sytuacja, że plugin jest niedostępny jest możliwa?

0

W jakim sensie niedostępne? Subskrybować się do zdarzeń chcę z tego samego modułu jak i z innych.

1
A z event sourcingiem miałbym po prostu tak, że w metodzie addPoints byłoby dodanie tych punktów, sprawdzenie czy osiągnięto próg i wyemitowanie zdarzenia. I każdy kto potrzebuje by się zasubskrybował.

Z tego co piszesz to po prostu chcesz emitowac eventy, nic tu nie wskazuje na event sourcing.

0

@Swr:

0

@Swr:

A czy to nie są jednoznaczna określenia ? Emitowanie eventów to jakiś event sourcing. Mogę się pod nie podpiąć i już dalej robić jakąś logikę.
A jeśli się mylę i to nie jest to samo to proszę nakieruj mnie :)

1

Emitowanie eventów to emitowanie eventów, to, że wyemituje event gdy przycisk został kliknięty oznacza, że to już event sourcing? Tobie to chyba chodzi tylko i wyłącznie o publish subscribe. Event sourcing wiąże się z zapisaniem całego stanu obiektu jako eventy a przy odczycie obiektu odtworzeniu tych eventów aby otrzymać aktualny stan. Zazwyczaj potrzebny jest jeszcze CQRS, podział na write/read model.
Poczytaj o tym bo ja nie jestem autorytetem żeby to tłumaczyć ;) Jeśli się mylę to proszę o poprawienie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1