Cześć, przerabiam sobie jakiś tutorial na temat event driven architecture (Saga) i im dalej w las tym wydaje mi się, że nie ogarniam i ta koncepcja to jest jakiś wielki burdel, gdzie mamy kilka tych samych klas (POJO z dodatkami), ale różnie nazwanych typu CreateProductCommand, ProductAggregate, ProductEntity, CreateProductRestModel, ProductLookupEntity (potrzebne do sprawdzenia event store), ProductCreatedEvent i w pakiecie query ProductRestModel :/
Do tego nie ma żadnej płynności w kodzie, w sensie, że normalnie wiesz gdzie leci request i po kolei wiesz które metody się wywołają, a tutaj masz tylko nadpisane metody void handle z jakąś adnotacją np. @ CommandHandler w różnych warstwach i cholera wie, kiedy się to wywoła.
To jest serio takie wymagające, czy o co tu chodzi?
Czy przy mikroserwisach jest to konieczne, czy jest jakaś alternatywa?
Znalazłem w google jeszcze taką odpowiedź:
Three commonly quoted disadvantages of event-driven architecture are:
Increased complexity.
Debugging and troubleshooting challenges.
Difficulties with monitoring
Jakie są Wasze doświadczenia?