Applying the Saga Pattern • Caitie McCaffrey • GOTO 2015

Ғылым және технология

This presentation was recorded at GOTO Chicago 2015. #gotocon #gotochgo
gotochgo.com
Caitie McCaffrey - Distributed Systems Diva at Twitter
ABSTRACT
As we build larger more complex applications and solutions that need to do collaborative processing the traditional ACID transaction model using coordinated 2-phase commit is often no longer suitable. More frequently [...]
Download slides and read the full abstract here:
gotocon.com/chicago-2015/prese...
/ gotochgo
/ gotoconference
#DistributedSystems #SagaPattern
Looking for a unique learning experience?
Attend the next GOTO conference near you! Get your ticket at gotopia.tech
Sign up for updates and specials at gotopia.tech/newsletter
SUBSCRIBE TO OUR CHANNEL - new videos posted almost daily.
kzread.info...

Пікірлер: 111

  • @t529615
    @t52961510 ай бұрын

    Great presentation. Still relevant in 2023 👍

  • @JesusEnriqueFrancoMartinez

    @JesusEnriqueFrancoMartinez

    3 ай бұрын

    unlike Redux Saga?

  • @mrbharatmehta
    @mrbharatmehta6 жыл бұрын

    Very helpful presentation. Saved me a lot of effort in understanding why and how Saga is used for orchestrating a transaction

  • @laytonmiller5865
    @laytonmiller58656 жыл бұрын

    Finally, the slides and the video at the same time. Also, excellent presentation. Very knowledgeable.

  • @iloveyeseul
    @iloveyeseul5 жыл бұрын

    what a clear presentation!! Thanks to your talk, i figure out what saga pattern is and could imagine what redux-saga does. Thx again!!

  • @nmuta1
    @nmuta16 жыл бұрын

    This talk will be relevant for a while as we all are looking into various ways forms of asynchronous data, multiple data streams, and complex dependencies in transactions . Love this talk !!!!!

  • @jjong
    @jjong6 жыл бұрын

    So much comprehensive explanation that irresistibly leads me to understand what saga is

  • @legiogallica
    @legiogallica5 жыл бұрын

    Very clearly and thoroughly explained, thank you.

  • @jch.254
    @jch.2548 жыл бұрын

    Fantastic presentation! Thanks

  • @programming6881
    @programming6881 Жыл бұрын

    Wonmderful talk! Very articulate and the examples are excellent. Thanks for sharing this.

  • @perkimon
    @perkimon5 жыл бұрын

    This presentation made Saga's click for me. Nice one.

  • @rahulchakraborty626
    @rahulchakraborty6265 жыл бұрын

    Awesome Presentation. Very well explained . Thanks !!

  • @markomilenkovic2714
    @markomilenkovic27144 жыл бұрын

    That was a great presentation, thank you Caitie

  • @pontusdevelopment9284
    @pontusdevelopment92845 жыл бұрын

    Need to learn the Saga Pattern for my first developer job, and this video was certainly a superb starting point! Seldom does new concepts click as fast and easily as this one did after watching your talk. Thank you, Caitie!

  • @brucewayne2480

    @brucewayne2480

    4 жыл бұрын

    hi , it's been a year so what other ressources did you use to learn more about saga pattern ? thanks

  • @seol1500

    @seol1500

    2 жыл бұрын

    @@brucewayne2480 microservices pattern, other than that checkout a book by martin kleppmann

  • @Viniter
    @Viniter6 жыл бұрын

    Very well explained and practical!

  • @HafizQutaiba
    @HafizQutaiba7 жыл бұрын

    Good talks, well explained. Thanks

  • @abhilashbandi3866
    @abhilashbandi38664 жыл бұрын

    Blown away!!! Thank you :)

  • @dorelbarbu9453
    @dorelbarbu94532 жыл бұрын

    Very good presentation! Thanks for sharing!

  • @MrTractor01
    @MrTractor018 жыл бұрын

    Very impressive! Interesting topic that was explained and illustrated well and the presentation was right on point.

  • @ravikumarmistry
    @ravikumarmistry2 жыл бұрын

    this is a very amazing talk. Thankyou

  • @cvetkovicslobodan
    @cvetkovicslobodan10 ай бұрын

    Nice talk, still valid in 2023. :)

  • @markosfragkakis4984
    @markosfragkakis49845 жыл бұрын

    Very good presentation, thank you

  • @ValeriyaSerdyukova
    @ValeriyaSerdyukova6 ай бұрын

    Awesome talk. Thanks for a great presentation

  • @CFXplosive
    @CFXplosive4 жыл бұрын

    Although it is a bit fast, and some background knowledge is assumed, it's a great presentation ... Thanks !!

  • @izebit
    @izebit6 жыл бұрын

    Thank a lot for a good explanation of saga. All are clear, even for me

  • @willemojnr
    @willemojnr3 жыл бұрын

    Great talk. I learnt some new things.

  • @ahmadtinku
    @ahmadtinku6 жыл бұрын

    Awesome talk ! Thanks

  • @sfontesv
    @sfontesv6 жыл бұрын

    Very nice talk! Thanks

  • @technoarte
    @technoarte8 жыл бұрын

    What a smart engineer. Well explained! Thanks.

  • @partyY2Hard
    @partyY2Hard6 жыл бұрын

    Good job. Thanks,

  • @computerex
    @computerex7 жыл бұрын

    Fantastic talk

  • Жыл бұрын

    Excellent talk.

  • @thecrazychosid
    @thecrazychosid3 жыл бұрын

    Fantastic.

  • @sergeyberezovskiy8921
    @sergeyberezovskiy89215 жыл бұрын

    Great to watch at 0.75 speed!

  • @jimlaredo8864

    @jimlaredo8864

    5 жыл бұрын

    It all depends - worked for me at 1.25

  • @davidc24994

    @davidc24994

    5 жыл бұрын

    Yep She speaks too fast for non - natives I think :)

  • @user-hr8ny3di3r

    @user-hr8ny3di3r

    5 жыл бұрын

    ​@@davidc24994​, yes, she does, but she speaks clearly and doesn't swallow words' endings. To my surprise, it was comprehensible. And awesome as well!

  • @logarythm591

    @logarythm591

    3 жыл бұрын

    lool

  • @dhaferbenali5302
    @dhaferbenali53023 жыл бұрын

    Great talk. Thx !

  • @thegrumpydeveloper
    @thegrumpydeveloper Жыл бұрын

    Cool this is workflows and is implemented in things like temporal in 2023. Still wish it were easier to implement but we’re getting there.

  • @alexpiper4773
    @alexpiper47734 жыл бұрын

    Many thanks 👍👍👍👍

  • @TowhidIslam
    @TowhidIslam11 ай бұрын

    Awesome 👍😀

  • @XibaXela
    @XibaXela3 жыл бұрын

    Two questions 1. The presenter says they are using Azure Service Bus as a log. How does this work? I don't understand how a queue would be a useful way to store log information. 2. They mention a "CP log", what does that mean in this context?

  • @delprofundo
    @delprofundo5 жыл бұрын

    haha thank you! exactly the guidance I needed.

  • @ornous
    @ornous7 жыл бұрын

    Very cool talk. Thanks very much! (:

  • @sujeetagrahari5274
    @sujeetagrahari52743 жыл бұрын

    My Ears didn't breathe at all watching whole talk 😂

  • @chrismaandhika
    @chrismaandhika6 жыл бұрын

    What if the Saga Log node fails? I think from her presentation, the Saga Log node is not allowed to fail.

  • @GiveMeAnOKUsername
    @GiveMeAnOKUsername3 жыл бұрын

    So load data into big bucket and then, at leisure, process and parcel out to store. On fail, retry. This is similar to CQRS except with that the big bucket is kept around and considered to be the database.

  • @jimlaredo8864
    @jimlaredo88645 жыл бұрын

    What techniques did you use to achieve idempotency in your scenarios? - Great talk!

  • @pranjalagnihotri6072
    @pranjalagnihotri60723 жыл бұрын

    This talk is based on the paper 09:03

  • @parrottsquawk975
    @parrottsquawk9753 жыл бұрын

    15:45 Don't be the person that interrupts someone in the middle of their presentation!

  • @aneeinaec
    @aneeinaec2 жыл бұрын

    Smart!

  • @gannalyo0015
    @gannalyo00156 жыл бұрын

    Beautiful. Then, are there translations for Chinese? Thank you.

  • @rajeshg3570
    @rajeshg35702 жыл бұрын

    nice explanation and slides. i'm wondering where is the saga state stored if it's not in SEC?

  • @Bugslamor
    @Bugslamor2 жыл бұрын

    Jeez I was just trying to make ajax calls from my web page. Great talk though !

  • @wildknowledge4816
    @wildknowledge48163 жыл бұрын

    Ohohoho! Perfect explanation. Now I can do my homework )) I'll borrow a couple of your slides if you don't mind of course. Thx!

  • @limitless9483
    @limitless94834 жыл бұрын

    I don't see the relationship between this and redux-saga, but hey I watched the full thing and maybe, later on, I might come back and laugh at how stupid I was :) great speech.

  • @goldenking2046
    @goldenking20464 жыл бұрын

    So if I'm understanding correctly: in order for the Saga to survive the Coordinator dying, either the forward transaction or the compensating transaction must be idempotent. However in the example of email, neither seems to be the case. Obviously sending out the email is not idempotent, nor would I want to flood the customer's inbox with hundreds of "disregard the last email" messages if the compensating action needs to be retried.

  • @GiveMeAnOKUsername

    @GiveMeAnOKUsername

    3 жыл бұрын

    Only send one email.

  • @LimitedWard

    @LimitedWard

    2 жыл бұрын

    What's stopping you from sending a second email? That sort of thing happens all the time with e-commerce sites. You get one email with your order confirmation and another later when the order has shipped. You may also receive an email saying your order was cancelled or the shipment was delayed. All of those are valid compensations for the original email(s).

  • @basilio100
    @basilio1005 жыл бұрын

    I wonder if this pattern (transaction idempotentcy) can be applied in financial world? Probably it will be more complex solution - if you for example do fund transfer, how would your system retry if transaction failed...Also how compensation will work?

  • @davidc24994

    @davidc24994

    5 жыл бұрын

    Hi Basilio100, Maybe then you need to add a bit of logic there and identify your transaction with an ID, e.g see if you have already applied this ID rollback... What do you think?

  • @basilio100

    @basilio100

    5 жыл бұрын

    @@davidc24994 don't know. I did few POC projects, used correlation Id to mark transactions... All is not so easy...

  • @mostafav12
    @mostafav126 жыл бұрын

    An excellent presentation, but I have a question, consider T1 for booking hotel runs without problem and we call T2 start, at this moment another service that creates reports for hotels starts to sending new booking records to hotels, but T2 fails and we runs c2 and c1, how should we handle this kind of exceptions?

  • @renatoargh

    @renatoargh

    5 жыл бұрын

    This report will be eventually consistent, after C1 finishes running. This is my understanding, at least.

  • @quangtung2912

    @quangtung2912

    3 жыл бұрын

    @@renatoargh or i think another approach is we will have a third state like 'processing'. And in the happy flow we must send 2 request, one for normal transaction processing, another for converting 'processing' to 'accepted' state. So the report query only use records with the 'accepted' state. This pattern as I remember is called 'semantic locking' found in the Microservices Patterns book.

  • @ravir5630
    @ravir56306 жыл бұрын

    she keeps mentioning about the paper. Do people read many published papers? How do I know which kickass concept I have to use? It must be published somewhere in a paper?

  • @bicatu

    @bicatu

    5 жыл бұрын

    they are usually the source of some of the trends for more complex patterns. It is good after you read a blog or presentation to see in more details and get your own conclusion for your domain.

  • @saeidh.2033
    @saeidh.20332 жыл бұрын

    An LLT is a saga if it can be written as a sequence of transactions that can be interleaved *with other transactions*. What the presenter mentioned at 10:11 (the one gotcha that sub-transactions cannot depend on one another .. T2 cannot take input from T1) is not correct!

  • @supermajic
    @supermajic5 жыл бұрын

    This didn't click last time I watched this, this time it's like I already understood the whole thing. When did I actually learn it lol.

  • @marvinalone
    @marvinalone2 жыл бұрын

    0.75x speed is perfect!

  • @hydtechietalks3607
    @hydtechietalks36074 жыл бұрын

    Looks like a great fan base here for her... God Save them!

  • @user-ee2cp5ex4i
    @user-ee2cp5ex4i4 жыл бұрын

    My english is terrible but she is great even for me all was understandably

  • @samchebbs7399
    @samchebbs73994 жыл бұрын

    Totally stupid question - how do you achieve idempotency when you are making a totally new car/hotel/flight booking? Wouldn't that be a POST request? a new entry in db of the remote service? and POST is not idempotent.

  • @samchebbs7399

    @samchebbs7399

    4 жыл бұрын

    .. and i got my answer :P - medium.com/@saurav200892/how-to-achieve-idempotency-in-post-method-d88d7b08fcdd

  • @quangtung2912

    @quangtung2912

    3 жыл бұрын

    Some kind of request_id for request deduplicating. But how to generate it reliable in a distributed manner even in the case of Coordinator crash is not an easy task :))

  • @HanifCarroll
    @HanifCarroll3 жыл бұрын

    25:43 Doesn't it make sense t hat it's always the best game they've ever had? Doesn't seem that people are likely to be as upset or call in if you got their stats wrong on a game that they played terribly.

  • @ChaojianZhang
    @ChaojianZhang2 жыл бұрын

    21:38 What if the compensating request fail😂

  • @cvetkovicslobodan

    @cvetkovicslobodan

    10 ай бұрын

    This is very important actually. You need to capture that compensating transaction failed and mark it for manual intervention to fix it manually. Also, you can have a retry mechanism in place that could help but not always, manual intervention might still be needed. Sometimes even manual intervention could be hard to do as some other events are already applied some changes to that resource so it can become quite challenging to get back to a consistent state in this case.

  • @bimalgrg8951
    @bimalgrg89515 жыл бұрын

    came from redux-saga docs ... didn't understand

  • @Greenthum6

    @Greenthum6

    4 жыл бұрын

    Yup it was like watching how to build a skyscraper when you need to build a doghouse.

  • @SunsetRacer

    @SunsetRacer

    3 жыл бұрын

    same! :(

  • @eolculnamo2

    @eolculnamo2

    3 жыл бұрын

    As far as I can tell, the Sagas discussed here and Redux Sagas are two very different concepts.

  • @rahmanandika612
    @rahmanandika6124 жыл бұрын

    cantik

  • @user-dp3ye8hd4l
    @user-dp3ye8hd4l2 жыл бұрын

    뭔말이냐이게

  • @gogoubai
    @gogoubai7 жыл бұрын

    Good explanation, but why you talk way too fast as if you on the run ?

  • @JeremyAndersonBoise

    @JeremyAndersonBoise

    6 жыл бұрын

    Gogo Ubari I am sure they didn’t give her an unlimited amount of time to make the presentation, maybe she has a lot to say?

  • @Ins3rtN4m3H3r3

    @Ins3rtN4m3H3r3

    6 жыл бұрын

    Most people, including professional developers, don't have public speaking as their day job. She was perfectly understandable the way she presented it.

  • @jamiro85it
    @jamiro85it7 жыл бұрын

    nothing new in the distributed transaction world. same old concepts execute/undo with an appealing name

  • @realB12
    @realB127 жыл бұрын

    Great content but TERRIBLE Speaker: Comme on, we are ment to work on a global scale. So do not speak the way you would speak for a bunch of local American-Friends in a TacoBell . Get dressed, sneeze and moderate your talking speed, please!

  • @lennahc1925

    @lennahc1925

    7 жыл бұрын

    comments about attire aside, if you don't like the video's speed, you can slow it down by clicking 'settings' in the bottom right, and selecting 'speed'. there just isn't a speed that's appropriate for everyone--I'm a native speaker, so I prefer quicker speakers. I think the best option is for the speaker to speak however fast they want, and then let the users decide at what speed they wish to listen.

  • @_lede

    @_lede

    7 жыл бұрын

    seriously, a tech guy commenting about the attire? what about male presenters on shorts and t-shirts? I dont find the dress too bad. and the presentation is pretty good too. like +lennahc said you can slow the speed and turn on the caption.

  • @MrKlaygomes

    @MrKlaygomes

    7 жыл бұрын

    René Baron as a non English native speaker I felt uncomfortable with her speed, but it is still a good talk by the way

  • @MrKlaygomes

    @MrKlaygomes

    7 жыл бұрын

    Ps. It is not possible slow down video speed on mobile devices :(

  • @samir_485

    @samir_485

    7 жыл бұрын

    Well I do agree that the speaker talks fast, but it didn't bother me much and I'm not a native speaker. She speaks clearly and loud enough and honestly I prefer this to those 2-hour long talks where the speaker is more concerned about his developer tales and jokes than the subject of the talk.

Келесі