Data Consistency in Microservices Architecture (Grygoriy Gonchar)

preview_player
Показать описание
While we go with microservices we bring one of the consequence which is using multiple datastores. With single data source, it’s way much easier to guaranty that given entity such as customer, order or payment will have the same state across the system. The challenges arise when the related data is spread across multiple microservices. This talk represents my architecture experience gathered in three organizations from different industries on making data consistent across multiple microservices. The solutions are based and inspired on the known facts about distributed systems such as CAP theorem or FLP impossibility, protocols such as 2PC or Raft, patterns such as Sagas or Event Sourcing.

Voxxed Days Microservices 2018: 2 days conference (+1 optional workshops day) only on Microservices.

Follow us on :

#developers #conference #microservices
Рекомендации по теме
Комментарии
Автор

Approaches for dealing with data inconsistency
1. saga
2. reconcilation
3. application event log
4. 2PC/XA
5. event first

mehrdadk.
Автор

Moving functions that require data consistency in the same Microservice was great information.

arisskarpetis
Автор

Why didn’t they ask any event failure type rollback questions in microservices !! This is a really great presentation !!Too much content here in approx 30 minutes !! I have gone through this 5 times !!! Excellent stufff !!

amanbains
Автор

Эх, наших всегда можно распознать по акценту :)
Классное видео, большое спасибо :)

talgatsabyrov
Автор

Data consistency is number one priority ;)

PointlessMuffin
Автор

Wow, this is such an amazing speech. Thanks a lot for sharing your wisdom 👍👍

23:36 here is the summary of the lecture but it would not be so easy if you haven’t followed the whole journey

raymondyoo
Автор

Thanks, Grygoriy, that's a great speech

Joseph-oztx
Автор

Hi Grygoriy Gonchar, thanks for the nice video on data consistency.

I have a question : Where is the "Application Event Log" containing the order details (Request, Payment, Flight etc) stored ? I mean in which service ?

In the example you mentioned, in "makemytrip" there are 5 services, where is the "Application Event Log" Maintained ? Is it maintained by a separate microservice (SAGA) or in one of the 5 microservices (Order, Payment, Hotel, Flight, Transfer) ?

Food_Nature_Lifestyle
Автор

the presenter is very well educated, please add his name for reference :)

thanks for the great talk

pinkylover
Автор

there isn't a fully exact way you can achieve complete data consistency with micro-service without a level of decoupling trust me. using some kind of locking mechanism and consumer acknowledgement could help to some extent though. for example, use ACID features to lock a transaction on your service db, send and event to a queue like rabbitmq or kafka and wait for acknowledgement before persisting your data in your service before unlocking or if error occurs then unlock and report the error. this same scenario for an event listener as well

tobiowolawi
Автор

Great sharing video and thank for tutorial friend, nice meet you ~~^^ ^^

TV-lvmf
Автор

Awesome presentation. No questions from the audience, made me surprise!
Anyway, He mention in Kafka vs RabbitMQ, with Kafka there are no retries out of the box. How come that happen?

aroundthisprettyplanet
Автор

@18:21, how will the "orders" event cancelled if payments did not go thru or vice-versa. In other words what happens if number 4 errors out in one of the 2 places

nitinkulkarni
Автор

I wonder if anyone if the audience was even listening to this guy? How come you cannot have a question about this topic?

VarunKalia
Автор

Спасибо, коротко, по делу, понятным английским. А на русском есть то же самое или похожее?

konstantinchvilyov
Автор

This is how you not do a presentation.. a slide should illustrate the idea. Too much talk

sbera
Автор

difficult to understand his English. painful. sorry. Otherwise, it is good

epi