Distributed Sagas: A Protocol for Coordinating Microservices - Caitie McCaffrey - JOTB17

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

Microservices have become the defacto architecture pattern for building services. However separating business logic into small services that operate with a single logical data set has introduced consistency challenges. Previous attempts to solve this problem like two phase commit have not been widely adopted due to availability and liveness issues.
Instead developers implement feral concurrency control mechanism. This technique can be error prone, and often results in “Death Star” architectures which rely on chained calls to enforce application invariants. These architectures become more complicated over time, and are difficult to modify and extend, and often don't correctly handle all failure scenarios.
In this talk I propose a new solution for this problem, Distributed Sagas, a protocol for coordinating requests among multiple micro services, while ensuring application invariants.

Пікірлер: 44

  • @jonassigursson7223
    @jonassigursson72236 жыл бұрын

    Great presentation. So much quality information packed within a short presentation. For those who feel it is too fast you can just slow down the video!

  • @mnkartik
    @mnkartik6 жыл бұрын

    Brilliant presentation. Very informative. SEC & the log being the most important of the all, was graphically well presented.

  • @christhatcher961
    @christhatcher9616 жыл бұрын

    Great talk and the pace is fine for me. I've been though some of these situations as a developer and architect and have a much better way of describing the concepts now. Thanks Catie.

  • @marcusnielsen2009
    @marcusnielsen20096 жыл бұрын

    I think the pace is fine as long as the presenter doesn't stumble, and wow, Caitie is on point! It's the second video I've seen with Caitie on sagas, and I'm looking forward to trying this out myself. Thank you!

  • @ankeweiland
    @ankeweiland5 жыл бұрын

    Great talk, I enjoyed a lot how you explained :)

  • @zencoweb
    @zencoweb6 жыл бұрын

    I've seen some talks on the same topic and this is one of the best, I'm not a native english speaker and talking speed was ok

  • @AlexFeature
    @AlexFeature5 жыл бұрын

    Very cool presentation!

  • @gaetano222
    @gaetano2225 жыл бұрын

    Excellent talk! Thank you!

  • @LusidDreaming
    @LusidDreaming2 жыл бұрын

    You can add isolation to the pattern by using semantic locking. It means refactoring a lot of existing aggregates/entities, but you can essentially just put a state on something like a booked hotel as "BOOKING_PENDING" and use this to create a locking mechanism. Then you treat it as if it doesn't exist until the state changes to a non-pending state. Semantic locking is a general technique and there's plenty of literature on this. But it answers one of the questions on how to enforce a user not being able to see/modify in between states.

  • @mortenbrodersen8664
    @mortenbrodersen86644 жыл бұрын

    Excellent talk!

  • 7 жыл бұрын

    Nice talk.

  • @PTM1008
    @PTM10082 жыл бұрын

    Too good!

  • @Paarth2000
    @Paarth20003 жыл бұрын

    Great talk. For the compensation on the flight reservation , could you not cancel it without send a create reservation and the flight service would only cancel if it were held.

  • @tkousek1
    @tkousek16 жыл бұрын

    Can a saga be thought of similarly to the "unit of work" pattern but only in a distributed architecture?

  • @allanchua9394
    @allanchua93947 жыл бұрын

    This is where NServiceBus shines alot :)

  • @jorenboulanger4347
    @jorenboulanger43474 жыл бұрын

    :O Great!

  • @bicatu
    @bicatu5 жыл бұрын

    Great talk. One question I would have asked is related to the actual scaling of the SEC and the recovery per se. In practice it is likely that you would have more than one SEC (to handle the traffic load) node so each one using some distributed persistence medium to store the logs. In this case how to handle the load of the writes on the log? (use sharding of RDBMS, or a distributed log - like kafka). Also how to know I have a process that got interrupted by the SEC dying.

  • @benjaminrood1648

    @benjaminrood1648

    5 жыл бұрын

    Use a distributive log distinct from all of this.

  • @kumarabhishek7877
    @kumarabhishek78774 жыл бұрын

    Your content is awesome, nice presentation, small suggestion your fluency of words is quite fast which is the only -ve in the presentation.

  • @BharCode09
    @BharCode092 жыл бұрын

    This is one video where I don't need to change playback speed.

  • @igrai
    @igrai6 жыл бұрын

    nice talk with good examples, but i actually had to slow down the playback

  • @parashar1505
    @parashar15055 ай бұрын

    First time in my life, I am hearing a video at 0.5x speed! How can someone speak so fast?

  • @ram62836
    @ram628363 жыл бұрын

    How is that possible making a POST call idempotent. Example book a car, pretty much a POST call. Video 16.51

  • @yuchen52
    @yuchen523 жыл бұрын

    The explanation for cancelling the flight is indeed weird. If we failed to book a flight, and we need to revert the saga, how do we force the booking of the flight to success? It becomes chicken-and-egg.

  • @AvanishRaju

    @AvanishRaju

    2 жыл бұрын

    Not really - we don't have to force the booking of the flight to succes - we just need to retry till there's a response - either success or failure. Either way, we have a clear state that we can now use to make sure that the flight booking is compensated. (In fact, if we receive a failure response, there's then no need to even try to compensate the flight booking.)

  • @kristiqntachev7139
    @kristiqntachev71393 жыл бұрын

    Put speed on 0.75 since the lady speaks too fast and even she cannot take a breath between words... If you put it on 0.75 speed it will be in some cases too fast :D

  • @AndrewKelley
    @AndrewKelley6 жыл бұрын

    I don't know what you guys are talking about. I'm watching this video at 1.5x speed.

  • @irekip

    @irekip

    5 жыл бұрын

    I'm trying 0.75x, but it's also too fast :)

  • @AvanishRaju

    @AvanishRaju

    2 жыл бұрын

    Same here!

  • @super-ulitka
    @super-ulitka6 жыл бұрын

    Even a micro can't handle such an impressive speech traffic by a presenter..

  • @cybernetic100
    @cybernetic1006 жыл бұрын

    Jeez! slow down a tad! :)

  • @hlexjava
    @hlexjava6 жыл бұрын

    played at 0.5x speed

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

    please slow

  • @kousiks2395
    @kousiks23954 жыл бұрын

    all the well known junk

  • @dragonfly3139
    @dragonfly31396 жыл бұрын

    I don't see anything new, people have been doing this stuff for ages with workflow engines.

  • @kevinkkirimii
    @kevinkkirimii6 жыл бұрын

    Caitie slow down; very informative though

  • @MostafaAli106
    @MostafaAli1066 жыл бұрын

    it's a really nice talk, but please slow down a little bit, it's ok to catch a breath between every point, I know you must be so excited but seriously, slow it down a bit

  • @30harshal
    @30harshal3 жыл бұрын

    she is just non-stop! bla bla bla...poor live audience.

  • @tristin1969
    @tristin19692 жыл бұрын

    She should slow down. She is talking way too fast.

  • @cipherw00t
    @cipherw00t3 жыл бұрын

    Are all american women presenters this irritating?

  • @gogoackman

    @gogoackman

    3 жыл бұрын

    dick

  • @cipherw00t

    @cipherw00t

    3 жыл бұрын

    @@gogoackman no u

Келесі