1、berndrueckerAre you done yet?Mastering long-running processes in modern architecturesLets talk about foodHow does ordering Pizza work?Pizza PlaceYouPhone CallSynchronous blocking communicationFeedback loop(ack,confirmation or rejection)Temporal coupling(e.g.busy,not answering)Pizza PlaceYouEmailAsyn
2、chronous non-blocking communicationNo temporal couplingPizza PlaceYouA feedback loop might make sense(ack,confirmation or rejection)EmailConfirmation EmailberndrueckerFeedback loop!=resultPizza PlaceYouEmailConfirmation EmailPizza DeliveryFeedback(ACK,confirmation,rejection)ResultberndrueckerOnly th
3、e first communication step is synchronous/blockingPizza PlaceYouPUT/orderHTTP 200Pizza DeliveryThe task ofPizza making islong runningberndrueckerSynchronous blocking behavior for the result?Bad user experienceDoes not scale wellberndrueckerScalable Coffee Makinghttps:/ by John IngleberndrueckerLong
4、runningLong runningLong running basically means waitingWhen do services wantwant to wait?Some business reasonsHuman workWaiting for responseLet some time passWhy is waiting a pain?Persistent stateHow to solve the technical challenges without adding accidentialcomplexity?Monitoring&OperationsVisibili
5、tyVersioningScheduling&TimeoutsDomain LogicScalability&ResilienceWarning:Contains Oberndrueckerhttp:/berndruecker.io/Bernd RueckerCo-founder and Chief Technologist ofCamundaWorkflow Engine akaProcess Engine akaOrchestration EngineLive hackinghttps:/ Onboardinghttps:/ are also technical reasons why s
6、ervices need to wait When do services needneed to wait?Some technical reasonsAsynchronous communicationWait for responsesWait for availabilityEspecially failure scenariosUnavailability of peersLive hackinghttps:/ by Tookapic,available under Creative Commons CC0 1.0 license.There was an errorwhile se