- Event Sourcing jest skomplikowany
Event Sourcing wymaga zmiany myślenia i perspektywy, a także położenia nacisku na zrozumienie procesów biznesowych i rządzących nimi zdarzeń. Nie jest jednak trudny, tylko inny.
- Event Sourcing nie jest praktyczny
Modelowanie procesów biznesowych jako zdarzenia pozwala na maksymalne uproszczenie komunikacji projektowej. Event Sourcing opisuje je w przyjazny, bliższy rzeczywistemu światu sposób.
Jesteś ciekawy jak to wygląda w praktyce? Spójrz na poniższy przebieg zdarzeń:
DodanoElementDoKoszyka, ZaakceptowanoZamównienie, WystawionoFakturęProforma, DokonanoOpłaty, WystawionoFakturę, WysłanoZamówienie.
Prościej już chyba się nie da!
- Przy Event Sourcingu konieczne jest zastosowanie CQRS, Domain Driven Design oraz innych nietypowych wzorców
Faktem jest, że są to rozwiązania, które świetnie ze sobą współgrają, bo wszystkie koncentrują się na poznaniu procesów biznesowych i starają się jak najwierniej odtworzyć je w oprogramowaniu, jednak ich wspólne wykorzystanie nie jest obowiązkowe.
- Konieczne jest posiadanie dwóch baz danych, z czego jedną z nich musi być Mongo
Event Sourcing nie wskazuje konkretnego sposobu przechowywania danych. Można skorzystać z dwóch baz danych, jednak nie jest to konieczne. Analogicznie jest w przypadku Mongo.
- Event Sourcing potrzebuje Eventual Consistency oraz szyny zdarzeń typu RabbitMQ lub Kafka – MIT
Zdarzenia można przechowywać w bazie relacyjnej, dlatego wbrew powszechnemu przekonaniu, Eventual Consistency nie jest niezbędne. Jeśli nie planujesz przekazywania zdarzeń do innych serwisów czy modułów, nie musisz korzystać z szyn zdarzeń, takich jak Kafka czy RabbitMQ.
- Możesz napotkać na problemy z wydajnością
Wydajność Event Sourcingu zależy od posiadanego pod sobą storage. Jednak dzięki odpowiedniej optymalizacji może działać szybciej od tradycyjnych rozwiązań, poprzez uniknięcie „losowych aktualizacji rekodów”. Event Sourcing zakłada, że zdarzenia są niezmienialne (immutable). Oznacza to, że nie można zmieniać przeszłości, a jedynie inaczej ją interpretować.
- Jest to oprogramowanie trudne w utrzymaniu
Poziom skomplikowania problemów migracji i spójności danych w systemach rozproszonych jest porównywalny do rozwiązań relacyjnych i klasycznych, natomiast zwykle ujawniają się one szybciej.
Zainteresował Cię temat Event Sourcingu? Więcej na temat przeczytasz tutaj: https://www.euvic.com/pl/event-sourcing-bez-tajemnic/