SlideShare una empresa de Scribd logo
1 de 52
Descargar para leer sin conexión
Arnon
 Rotem-Gal-Oz




Building reliable systems
from unreliable components
Arnon Rotem-Gal-Oz
What’s in a 9
0.99 reliability




We have a nice little legacy
   business component
And we move it to SOA

0.99     0.99    0.99




 0.99    0.99    0.99




 0.99    0.99   0.99
Failsafe hardware




       Status Technologies
       FT Server
Or try to detect failure , handle it and
minimize its effect on the business service




© Rosendahl
BEFORE WE BEGIN
SOA
              Adheres to     Policy     governed by


               Binds to     End Point       Exposes

                             Serves

 Service
              Understands   Contracts   implements        Service
Consumer

                            describes
                                                                    Key

                                                                          Component

           Sends/Receives   Messages     Sends/Receives                   Relation
Distributed   Pipes and   Layered    Client
  Agents        Filters   System     Server




                                       Stateless
                                        Comm.




                                    SOA is derived from
                  SOA                  other styles
SOA vs. REST
Distributed   Pipes and   Layered   Client        Replicated      Uniform    Virtual
  Agents        Filters   System    Server        Repository     Interface   Machine




                                      Stateless                              Code On
                                                       Cacheable
                                       Comm.                                 Demand




                  SOA                                          REST
System                                   Mobile Integration
                    3G Video                                    Dedicated
Monitoring                                     MMS                                      3rd parties
                      Calls                                       Client

  Usage
 Datmart                     Applications                                       Ad Management

                                                                           Targeted        Campaign
  Billing      Acquisition      Interactions         branding
                                                                          Advertizing       Mgmt.



Reporting                                      Resources

Data mining                                                                         Reference
& Statistics         Interactions                       Links
                                                                                      Data

                                           Link Managment
  Reports
                                                             Publishing
                      Data                Web                                     Interaction
                                                               tools
                   Interfaces          Front-end                                   Designer
                                                            integration
Load balancer                                                                                   Smart
                                                                                                    phones

   Web           Web              MMS                3G                  3G
  Server        Server           Gateway           Gateway             Gateway
 (IIS/Apache   (IIS/Apache                                                                          Camera
                                                                                                    Phones


 DMZ
                                                  Firewall

                                                                   Load balancer


       App               App               App                  App                                       App
                                                                                       App                              App
      Server            Server            Server               Server                                    Server
                                                                                      Server                           Server




                                                                                                                       Operational
                             Firewall
Backend
                  BI &                                  Sync.                                                Paper
     NMS                             Links
                Reporting         Registeration        Server                                                Editor

                                                                                        Web
                                                                           Firewall



                                                                                       Server
                                                                                      (IIS/Apache
    DB         Datamart                DB                                                                Advertizing
                                                                                                           clients
    Links            usage          References                Admin
                                                             Console
                                                                                        DMZ
CHALLENGE – SERVICE
AVAILABILITY
What’s the effect of a failure - Server



    E1 line = 30
 concurrent video
                    Call Flow
        calls
                     Service
Service Instance

                                 Service Business
                                       logic




End point

  reaction          Distribute

  request       Dispatcher
             Edge
                                        Service Instance
What’s the effect of a failure - Channel

                                 Call Flow
                     Call Flow Channel            Call Flow
                       Call Flow
                         Call Flow        Call FlowChannel
                     Channel
                        Channel Flow Channel
                            Call
                          Channel
                    Call Flow
                             Channel
                          Call Flow            Call Flow
    E1 line = 30    Channel       Call Flow
 concurrent video      Call Flow Channel Channel
                           Channel

        calls           Channel Call Flow
                       Call Flow Channel FlowCall
                        Channel Call FlowChannel
                          Call FlowChannel
                           Channel
Service Instance with NLB

Real IP : 1.1.1.4   Real IP : 1.1.1.3         Real IP : 1.1.1.2
 Windows Host        Cluster Host               Cluster Host
                           Service                   Service
        Edge                                        Instance
                          Instance

   Windows Kernel      Windows Kernel             Windows Kernel

                          TCP/IP                     TCP/IP
      TCP/IP

                        NLB Driver                 NLB Driver

    NIC Driver
                        NIC Driver                 NIC Driver



        NIC                 NIC                          NIC


                                  Virtual IP : 1.1.1.1
Virtual Endpoint
Request/Reply


                          EndPoint

                                              2.
                       1. Request
                                          Synchronous
                                           processing
                        3. Reply


Service Consumer                     Service
Things look Cool & Simple ™

3G                               Session
Call                            negations




        Render                                           Image
        resutls                                        extraction




                  Translation
                                            identification
                    to links
3G GW
                 IVP (RV)
 (RV)                                              SIP Listner

              3G VAS (Cestel)

                                                    RTP Image Extractor


    WS                3G Builder (Cestel)

                                                           Alg. Engine
WebRenderer
                                Resource Manager


                                                       Dispatcher

              WebConnector



   Turn out Complicated & Ugly ™
Parallel Pipelines
                                   Key
                                         SOA Component      Pattern Component      Queue

                                         Relation           Concern/attribute




                                                     pipeline                              pipeline
                Edge
Request                                                                           EndPoint
                       Request 1         EndPoint
          EndPoint
                       Request 2                         Perform                             Perform
Reaction                                                   Task                                Task




                                                           pipeline
                                                                                EndPoint
                                                                Perform
                                                                  Task                         Service
Inversion of Communications
Consumer view
  var sendMmsEvent = new SendMmsEvent()
     {
         FromNumber = simpleMessageDetails.DialedNumber,
         Subject = mmsContents.Subject,
         ToNumber = simpleMessageDetails.Sender,
         ImageExtension = mmsContents.ImageExtension,
         ImageAsByteArray = mmsContents.Image,
         TextAsByteArray = mmsContents.Text
     };
     eventBroker.RaiseEvent(sendMmsEvent);




                 http://www.flickr.com/photos/crimson_wolf/2851737125/sizes/l/
Service view
[ServiceContract]
public interface ImPostOffice : ImContract, IHandleSendCoupon,
IHandleSendSms,IHandleStatus,IHandleAdminStatus,IHandleWapLink,
IHandleSendMms
{

}

[ServiceContract]
public interface IHandleSendMms
{
    [OperationContract]
    int SendMms(SendMmsEvent eventOccured);
}

[DataContract]
    public class SendMmsEvent : ImEvent
    {
        /// <summary>
        /// end user's number. should be in international format: +[country-code]number. Example: +491737692260
        /// </summary>
        [DataMember]
        public string ToNumber { get; set; }
        /// <summary>
        /// service's number, usually a short-code. Example: 84343
        /// </summary>
        [DataMember]
        public string FromNumber { get; set; }
Edge translates external structures to
                internal ones
public int SendMms(SendMmsEvent eventOccured)
   {
       var eventContext = eventOccured.ToString();
       if (log.IsDebugEnabled)
           log.Debug("inside 'SendMms', event context = [" + eventContext + "]");
       var fromNumber = eventOccured.FromNumber;
       var sender = mmsSenderFactory.Get(fromNumber);
       if (null == sender)
       {
           if (log.IsWarnEnabled)
               log.Warn("cannot get mms sender derived from '" + (fromNumber ?? "null") + "'");
           return 0;
       }

       IMmsSubmitResponse response;
       try
       {
           var mmsMessageDetails = new MmsMessageDetails(eventOccured.ToNumber,
                                         eventOccured.TextAsByteArray,
                                         eventOccured.ImageAsByteArray,
                                         eventOccured.ImageExtension,
                                         eventOccured.Subject);
           response = sender.Submit(mmsMessageDetails);
       }
       catch (Exception ex)
       {
           log.Error("cannot send mms message, context = [" + eventContext + "]", ex);
           return 0;
       }
       if (log.IsInfoEnabled)
       {
           var responseMessage = (null == response) ? "null" : response.ToString();
           log.Info("sent mms with event context = [" + eventContext + "], response = [" +
responseMessage + "]");
       }
Sagas tie instances together for
         conversations
Call Recovery




         Image
        Extractor

SIP
                      Identification
Alternative : Orchestration
 Service                               Service

     reaction        request



                         Manage                  Protocol
                         Process

                         Schedule          Coordinator

route
request                                          monitor
           Workflow instance                     Offline
                                                 designer
                             Host
     Workflow Engine       Workflows       Auxiliary tools

Orchestration platform
Be Wary of Nano-Services
CHALLENGE - MANAGEMENT
Blogjecting Watchdog
                      Edge                 Service

           EndPoint


                                Monitor
                                          Watchdog
                 Watchdog
                               Monitor    Agent
Request          Edge
           EndPoint                          Heal

 Reports                                   Monitor
                      Report
                                                     Monitor
                                             Log      Monitor
Blogjects concept is about
   collaborating objects
WatchDog




Service A   Service B   WDWatcher
WatchDog
                 Call Recovery




                    Image
                   Extractor

           SIP
                                 Identification
Service Monitor


                     Collect
                      Metrics
                     collection      Status
        Fault
      Monitoring    Reporting &
       Security    Dashboarding                Edge/Service
      monitoring
                                      Status
        Policy
      governance         Notify

                                   Commands
                         Control    In
    Monitor        Act                         Edge/Service
Service Monitor
RESTful resource management

  root      1             2          3

                        Abcde/
         Sessions/
                         Efgh/
    /

         Resources/   Dispatchers/   Xyz/
http://devrig:52141/RM/Sessions/abc/
• ATOMPUB
  – Session details
     • URI (ID)
     • State (start/end/status etc.)
     • Resources
        – Knows status
        – URI for the Resource representation on the RM
        – URI for the Resource itself
Keep the BIT




http://www.flickr.com/photos/37643027@N00/2050024263/sizes/o/
WatchDog
              Call
            Recovery




              Image
             Extractor




                         X
      SIP
                         Identification

                                          WatchDog



             3G Call
                                          Liveliness
                                           Monitor
CHALLENGE – MULTI-TENNANCY
(LIES, I TELL YOU, ALL LIES)
Same event different subscribers

         Player
      (interaction                 Call Flow
       Renderer)

                      Play Movie
                         Event




      Bridge to 3rd
                                   Call Flow
          Party
Routing
[ServiceContract]
[Participate("3G")]
public interface ImPlayer : ImContract, IHandleCallStarted, IHandleC
IHandlePlayMovie,IHandleCallAborted
{
}



[ServiceContract]
[Participate("3GPartner")]
public interface ImXsightsGateWay : ImContract,
                                    IHandleCallAborted,
                                    IHandlePlayMovie,
                                    IHandleReadyForSearch,
                                    IHandleSearchStarted,
                                    IHandleJoinThirdParty

{
}
Raise a saga initiating event




Initiator A                                   Participant A
                                              Capacity : 2




                                              Participant B
Initiator B                                   Capacity : 1




                         Now what ?!
Reservation Pattern
Service Instance #1
              Control                              Control
               Edge                                 Edge Service Instance #2
Business       Event                                    Control Business
                                                    Event
 Logic         Broker                                    Edge
                                                    Broker       Logic
              Resource                                    Event      Business
                                                   Resource
              Allocator                                  Service Host Logic
                                                         Broker
                                                   Allocator
      Service Host
                                                       Resource Host
                                                           Service
                                                             Service Host
                                                       Allocator

                            Service Host                       Service Host

                          Control
Reservation                Edge
                           Event         Business
                           Broker         Logic
                          Resource
                                Service Host
                          Allocator
                                    Service Host
Good old
2PC to the
  rescue
Takeaways

• Things break
• Decouple
• Fail Fast
• Monitor & Detect
• Compensate

• Throw state unto others
Arnon Rotem-Gal-Oz




         @arnonrgo
      http://arnon.me
http://www.cloudvalue.com

Más contenido relacionado

La actualidad más candente

How to Implement Cloud Security: The Nuts and Bolts of Novell Cloud Security ...
How to Implement Cloud Security: The Nuts and Bolts of Novell Cloud Security ...How to Implement Cloud Security: The Nuts and Bolts of Novell Cloud Security ...
How to Implement Cloud Security: The Nuts and Bolts of Novell Cloud Security ...Novell
 
PHP Day 2011 PHP goes to the cloud
PHP Day 2011 PHP goes to the cloudPHP Day 2011 PHP goes to the cloud
PHP Day 2011 PHP goes to the cloudpietrobr
 
Venus-c: Using open source clouds in eScience
Venus-c: Using open source clouds in eScienceVenus-c: Using open source clouds in eScience
Venus-c: Using open source clouds in eScienceOW2
 
SOA Summer School: Best of SOA Summer School – Encore Session
SOA Summer School: Best of SOA Summer School – Encore Session SOA Summer School: Best of SOA Summer School – Encore Session
SOA Summer School: Best of SOA Summer School – Encore Session WSO2
 
Jentrata b2b gateway
Jentrata b2b gatewayJentrata b2b gateway
Jentrata b2b gatewayWayne Bingham
 
Soa con8642 pdf_8642_0001
Soa con8642 pdf_8642_0001Soa con8642 pdf_8642_0001
Soa con8642 pdf_8642_0001jucaab
 
EDI WS API ECGridOS Web Services
EDI WS API ECGridOS Web ServicesEDI WS API ECGridOS Web Services
EDI WS API ECGridOS Web Servicesbizquirk
 
Security & Governance for the Cloud: a Savvis Case Study (Presented at Cloud ...
Security & Governance for the Cloud: a Savvis Case Study (Presented at Cloud ...Security & Governance for the Cloud: a Savvis Case Study (Presented at Cloud ...
Security & Governance for the Cloud: a Savvis Case Study (Presented at Cloud ...CA API Management
 
Viestinnän seminaari 8.11.2012 / Exchange
Viestinnän seminaari 8.11.2012 / ExchangeViestinnän seminaari 8.11.2012 / Exchange
Viestinnän seminaari 8.11.2012 / ExchangeSalcom Group
 
Soa cloud con8968_pdf_8968_0001
Soa cloud con8968_pdf_8968_0001Soa cloud con8968_pdf_8968_0001
Soa cloud con8968_pdf_8968_0001jucaab
 
Fast, Strong & Nimble Mobile Performance Testing
Fast, Strong & Nimble Mobile Performance TestingFast, Strong & Nimble Mobile Performance Testing
Fast, Strong & Nimble Mobile Performance TestingSOASTA
 
Mobile App Assurance: Yesterday, Today, and Tomorrow.
Mobile App Assurance: Yesterday, Today, and Tomorrow.Mobile App Assurance: Yesterday, Today, and Tomorrow.
Mobile App Assurance: Yesterday, Today, and Tomorrow.Bob Binder
 
Service Delivery Platform
Service Delivery PlatformService Delivery Platform
Service Delivery PlatformPitra Satvika
 
Paul Butterworth Policy Based Approach
Paul  Butterworth    Policy  Based  ApproachPaul  Butterworth    Policy  Based  Approach
Paul Butterworth Policy Based ApproachSOA Symposium
 
New aspects of Cisco UC Interoperability
New aspects of Cisco UC InteroperabilityNew aspects of Cisco UC Interoperability
New aspects of Cisco UC InteroperabilityCisco Canada
 
Beyond SPML: Access Provisioning in a Services World
Beyond SPML: Access Provisioning in a Services WorldBeyond SPML: Access Provisioning in a Services World
Beyond SPML: Access Provisioning in a Services WorldNishant Kaushik
 
Managing Enterprise Services through Service Versioning & Governance - Impact...
Managing Enterprise Services through Service Versioning & Governance - Impact...Managing Enterprise Services through Service Versioning & Governance - Impact...
Managing Enterprise Services through Service Versioning & Governance - Impact...Prolifics
 

La actualidad más candente (20)

How to Implement Cloud Security: The Nuts and Bolts of Novell Cloud Security ...
How to Implement Cloud Security: The Nuts and Bolts of Novell Cloud Security ...How to Implement Cloud Security: The Nuts and Bolts of Novell Cloud Security ...
How to Implement Cloud Security: The Nuts and Bolts of Novell Cloud Security ...
 
PHP Day 2011 PHP goes to the cloud
PHP Day 2011 PHP goes to the cloudPHP Day 2011 PHP goes to the cloud
PHP Day 2011 PHP goes to the cloud
 
Venus-c: Using open source clouds in eScience
Venus-c: Using open source clouds in eScienceVenus-c: Using open source clouds in eScience
Venus-c: Using open source clouds in eScience
 
SOA Summer School: Best of SOA Summer School – Encore Session
SOA Summer School: Best of SOA Summer School – Encore Session SOA Summer School: Best of SOA Summer School – Encore Session
SOA Summer School: Best of SOA Summer School – Encore Session
 
Private Cloud Day Session 1: Building your Private Cloud Infrastructure
Private Cloud Day Session 1: Building your Private Cloud InfrastructurePrivate Cloud Day Session 1: Building your Private Cloud Infrastructure
Private Cloud Day Session 1: Building your Private Cloud Infrastructure
 
Jentrata b2b gateway
Jentrata b2b gatewayJentrata b2b gateway
Jentrata b2b gateway
 
Soa con8642 pdf_8642_0001
Soa con8642 pdf_8642_0001Soa con8642 pdf_8642_0001
Soa con8642 pdf_8642_0001
 
EDI WS API ECGridOS Web Services
EDI WS API ECGridOS Web ServicesEDI WS API ECGridOS Web Services
EDI WS API ECGridOS Web Services
 
Security & Governance for the Cloud: a Savvis Case Study (Presented at Cloud ...
Security & Governance for the Cloud: a Savvis Case Study (Presented at Cloud ...Security & Governance for the Cloud: a Savvis Case Study (Presented at Cloud ...
Security & Governance for the Cloud: a Savvis Case Study (Presented at Cloud ...
 
Viestinnän seminaari 8.11.2012 / Exchange
Viestinnän seminaari 8.11.2012 / ExchangeViestinnän seminaari 8.11.2012 / Exchange
Viestinnän seminaari 8.11.2012 / Exchange
 
Soa cloud con8968_pdf_8968_0001
Soa cloud con8968_pdf_8968_0001Soa cloud con8968_pdf_8968_0001
Soa cloud con8968_pdf_8968_0001
 
Fast, Strong & Nimble Mobile Performance Testing
Fast, Strong & Nimble Mobile Performance TestingFast, Strong & Nimble Mobile Performance Testing
Fast, Strong & Nimble Mobile Performance Testing
 
ACORD Web Services
ACORD Web ServicesACORD Web Services
ACORD Web Services
 
Configuring and deploying a private cloud with system center 2012
Configuring and deploying a private cloud with system center 2012Configuring and deploying a private cloud with system center 2012
Configuring and deploying a private cloud with system center 2012
 
Mobile App Assurance: Yesterday, Today, and Tomorrow.
Mobile App Assurance: Yesterday, Today, and Tomorrow.Mobile App Assurance: Yesterday, Today, and Tomorrow.
Mobile App Assurance: Yesterday, Today, and Tomorrow.
 
Service Delivery Platform
Service Delivery PlatformService Delivery Platform
Service Delivery Platform
 
Paul Butterworth Policy Based Approach
Paul  Butterworth    Policy  Based  ApproachPaul  Butterworth    Policy  Based  Approach
Paul Butterworth Policy Based Approach
 
New aspects of Cisco UC Interoperability
New aspects of Cisco UC InteroperabilityNew aspects of Cisco UC Interoperability
New aspects of Cisco UC Interoperability
 
Beyond SPML: Access Provisioning in a Services World
Beyond SPML: Access Provisioning in a Services WorldBeyond SPML: Access Provisioning in a Services World
Beyond SPML: Access Provisioning in a Services World
 
Managing Enterprise Services through Service Versioning & Governance - Impact...
Managing Enterprise Services through Service Versioning & Governance - Impact...Managing Enterprise Services through Service Versioning & Governance - Impact...
Managing Enterprise Services through Service Versioning & Governance - Impact...
 

Destacado

Wix.com Back-end Engineering Guild Manifesto
Wix.com Back-end Engineering Guild ManifestoWix.com Back-end Engineering Guild Manifesto
Wix.com Back-end Engineering Guild ManifestoAviran Mordo
 
Microservices - it's déjà vu all over again
Microservices  - it's déjà vu all over againMicroservices  - it's déjà vu all over again
Microservices - it's déjà vu all over againArnon Rotem-Gal-Oz
 
Scaling wix.com to 100 million users
Scaling wix.com to 100 million users Scaling wix.com to 100 million users
Scaling wix.com to 100 million users Aviran Mordo
 
Microservices and Redis #redisconf Keynote
Microservices and Redis #redisconf KeynoteMicroservices and Redis #redisconf Keynote
Microservices and Redis #redisconf KeynoteChris Richardson
 
Scaling Wix engineering
Scaling Wix engineering Scaling Wix engineering
Scaling Wix engineering Aviran Mordo
 
Handling Eventual Consistency in JVM Microservices with Event Sourcing (javao...
Handling Eventual Consistency in JVM Microservices with Event Sourcing (javao...Handling Eventual Consistency in JVM Microservices with Event Sourcing (javao...
Handling Eventual Consistency in JVM Microservices with Event Sourcing (javao...Chris Richardson
 
Scaling wix with microservices architecture devoxx London 2015
Scaling wix with microservices architecture devoxx London 2015Scaling wix with microservices architecture devoxx London 2015
Scaling wix with microservices architecture devoxx London 2015Aviran Mordo
 

Destacado (7)

Wix.com Back-end Engineering Guild Manifesto
Wix.com Back-end Engineering Guild ManifestoWix.com Back-end Engineering Guild Manifesto
Wix.com Back-end Engineering Guild Manifesto
 
Microservices - it's déjà vu all over again
Microservices  - it's déjà vu all over againMicroservices  - it's déjà vu all over again
Microservices - it's déjà vu all over again
 
Scaling wix.com to 100 million users
Scaling wix.com to 100 million users Scaling wix.com to 100 million users
Scaling wix.com to 100 million users
 
Microservices and Redis #redisconf Keynote
Microservices and Redis #redisconf KeynoteMicroservices and Redis #redisconf Keynote
Microservices and Redis #redisconf Keynote
 
Scaling Wix engineering
Scaling Wix engineering Scaling Wix engineering
Scaling Wix engineering
 
Handling Eventual Consistency in JVM Microservices with Event Sourcing (javao...
Handling Eventual Consistency in JVM Microservices with Event Sourcing (javao...Handling Eventual Consistency in JVM Microservices with Event Sourcing (javao...
Handling Eventual Consistency in JVM Microservices with Event Sourcing (javao...
 
Scaling wix with microservices architecture devoxx London 2015
Scaling wix with microservices architecture devoxx London 2015Scaling wix with microservices architecture devoxx London 2015
Scaling wix with microservices architecture devoxx London 2015
 

Similar a Building reliable systems from unreliable components

Transaction-based Capacity Planning for greater IT Reliability™ webinar
Transaction-based Capacity Planning for greater IT Reliability™ webinar Transaction-based Capacity Planning for greater IT Reliability™ webinar
Transaction-based Capacity Planning for greater IT Reliability™ webinar Metron
 
Patterns of Cloud Applications Using Microsoft Azure Services Platform
Patterns of Cloud Applications Using Microsoft Azure Services PlatformPatterns of Cloud Applications Using Microsoft Azure Services Platform
Patterns of Cloud Applications Using Microsoft Azure Services PlatformDavid Chou
 
Complex End-to-End Testing
Complex End-to-End TestingComplex End-to-End Testing
Complex End-to-End TestingErika Barron
 
MS TechDays 2011 - Cloud Computing with the Windows Azure Platform
MS TechDays 2011 - Cloud Computing with the Windows Azure PlatformMS TechDays 2011 - Cloud Computing with the Windows Azure Platform
MS TechDays 2011 - Cloud Computing with the Windows Azure PlatformSpiffy
 
6.Live Framework 和Mesh Services
6.Live Framework 和Mesh Services6.Live Framework 和Mesh Services
6.Live Framework 和Mesh ServicesGaryYoung
 
MPLS 2010: Network Enabled Cloud and Service Models
MPLS 2010: Network Enabled Cloud and Service ModelsMPLS 2010: Network Enabled Cloud and Service Models
MPLS 2010: Network Enabled Cloud and Service ModelsCisco Service Provider
 
Building and Managing Cloud Applications and Infrastructure
Building and Managing Cloud Applications and InfrastructureBuilding and Managing Cloud Applications and Infrastructure
Building and Managing Cloud Applications and InfrastructureDarren Cunningham
 
Lap around windows azure
Lap around windows azureLap around windows azure
Lap around windows azureManish Corriea
 
Mobile Web Security Bootstrap on Ericsson Labs
Mobile Web Security Bootstrap on Ericsson LabsMobile Web Security Bootstrap on Ericsson Labs
Mobile Web Security Bootstrap on Ericsson LabsEricsson Labs
 
Manage Agility through Manage-ability – Introducing Design Time at Run Time ...
Manage Agility through Manage-ability – Introducing Design Time at Run Time ...Manage Agility through Manage-ability – Introducing Design Time at Run Time ...
Manage Agility through Manage-ability – Introducing Design Time at Run Time ...Lucas Jellema
 
OreDev 2008: Software + Services
OreDev 2008: Software + ServicesOreDev 2008: Software + Services
OreDev 2008: Software + Servicesukdpe
 
Viestintäaamupäivä exchange 2013
Viestintäaamupäivä exchange 2013Viestintäaamupäivä exchange 2013
Viestintäaamupäivä exchange 2013Salcom Group
 
Choosing Your Windows Azure Platform Strategy
Choosing Your Windows Azure Platform StrategyChoosing Your Windows Azure Platform Strategy
Choosing Your Windows Azure Platform Strategydrmarcustillett
 
Oracle SOA Suite Overview - Integration in a Service-Oriented World
Oracle SOA Suite Overview - Integration in a Service-Oriented WorldOracle SOA Suite Overview - Integration in a Service-Oriented World
Oracle SOA Suite Overview - Integration in a Service-Oriented WorldOracleContractors
 
Enabling Content Workflows in the Cloud
Enabling Content Workflows in the CloudEnabling Content Workflows in the Cloud
Enabling Content Workflows in the CloudAmazon Web Services
 
Development Model for The Cloud
Development Model for The CloudDevelopment Model for The Cloud
Development Model for The Cloudumityalcinalp
 

Similar a Building reliable systems from unreliable components (20)

Transaction-based Capacity Planning for greater IT Reliability™ webinar
Transaction-based Capacity Planning for greater IT Reliability™ webinar Transaction-based Capacity Planning for greater IT Reliability™ webinar
Transaction-based Capacity Planning for greater IT Reliability™ webinar
 
Patterns of Cloud Applications Using Microsoft Azure Services Platform
Patterns of Cloud Applications Using Microsoft Azure Services PlatformPatterns of Cloud Applications Using Microsoft Azure Services Platform
Patterns of Cloud Applications Using Microsoft Azure Services Platform
 
Complex End-to-End Testing
Complex End-to-End TestingComplex End-to-End Testing
Complex End-to-End Testing
 
MS TechDays 2011 - Cloud Computing with the Windows Azure Platform
MS TechDays 2011 - Cloud Computing with the Windows Azure PlatformMS TechDays 2011 - Cloud Computing with the Windows Azure Platform
MS TechDays 2011 - Cloud Computing with the Windows Azure Platform
 
6.Live Framework 和Mesh Services
6.Live Framework 和Mesh Services6.Live Framework 和Mesh Services
6.Live Framework 和Mesh Services
 
MPLS 2010: Network Enabled Cloud and Service Models
MPLS 2010: Network Enabled Cloud and Service ModelsMPLS 2010: Network Enabled Cloud and Service Models
MPLS 2010: Network Enabled Cloud and Service Models
 
Building and Managing Cloud Applications and Infrastructure
Building and Managing Cloud Applications and InfrastructureBuilding and Managing Cloud Applications and Infrastructure
Building and Managing Cloud Applications and Infrastructure
 
Cloud computing overview
Cloud computing overviewCloud computing overview
Cloud computing overview
 
Lap around windows azure
Lap around windows azureLap around windows azure
Lap around windows azure
 
Mobile Web Security Bootstrap on Ericsson Labs
Mobile Web Security Bootstrap on Ericsson LabsMobile Web Security Bootstrap on Ericsson Labs
Mobile Web Security Bootstrap on Ericsson Labs
 
Guard Era Corp Brochure 2008
Guard Era Corp Brochure 2008Guard Era Corp Brochure 2008
Guard Era Corp Brochure 2008
 
Manage Agility through Manage-ability – Introducing Design Time at Run Time ...
Manage Agility through Manage-ability – Introducing Design Time at Run Time ...Manage Agility through Manage-ability – Introducing Design Time at Run Time ...
Manage Agility through Manage-ability – Introducing Design Time at Run Time ...
 
OreDev 2008: Software + Services
OreDev 2008: Software + ServicesOreDev 2008: Software + Services
OreDev 2008: Software + Services
 
Viestintäaamupäivä exchange 2013
Viestintäaamupäivä exchange 2013Viestintäaamupäivä exchange 2013
Viestintäaamupäivä exchange 2013
 
Choosing Your Windows Azure Platform Strategy
Choosing Your Windows Azure Platform StrategyChoosing Your Windows Azure Platform Strategy
Choosing Your Windows Azure Platform Strategy
 
Deja vu.idc.solutions
Deja vu.idc.solutionsDeja vu.idc.solutions
Deja vu.idc.solutions
 
Oracle SOA Suite Overview - Integration in a Service-Oriented World
Oracle SOA Suite Overview - Integration in a Service-Oriented WorldOracle SOA Suite Overview - Integration in a Service-Oriented World
Oracle SOA Suite Overview - Integration in a Service-Oriented World
 
Enabling Content Workflows in the Cloud
Enabling Content Workflows in the CloudEnabling Content Workflows in the Cloud
Enabling Content Workflows in the Cloud
 
Development Model for The Cloud
Development Model for The CloudDevelopment Model for The Cloud
Development Model for The Cloud
 
Corporate overview 2.0
Corporate overview 2.0Corporate overview 2.0
Corporate overview 2.0
 

Más de Arnon Rotem-Gal-Oz (20)

Taking ML to production - a journey
Taking ML to production - a journeyTaking ML to production - a journey
Taking ML to production - a journey
 
Apache spark
Apache sparkApache spark
Apache spark
 
Fallacies of Distributed Computing
Fallacies of Distributed Computing Fallacies of Distributed Computing
Fallacies of Distributed Computing
 
Docker & Kubernetes intro
Docker & Kubernetes introDocker & Kubernetes intro
Docker & Kubernetes intro
 
Docker Intro
Docker IntroDocker Intro
Docker Intro
 
Data security @ the personal level
Data security @ the personal levelData security @ the personal level
Data security @ the personal level
 
Big data in the cloud - welcome to cost oriented design
Big data in the cloud - welcome to cost oriented designBig data in the cloud - welcome to cost oriented design
Big data in the cloud - welcome to cost oriented design
 
Distilling insights @ AppsFlyer
Distilling insights @ AppsFlyerDistilling insights @ AppsFlyer
Distilling insights @ AppsFlyer
 
Distilling Insights @ Appsflyer (Data Architecture)
Distilling Insights @ Appsflyer (Data Architecture)Distilling Insights @ Appsflyer (Data Architecture)
Distilling Insights @ Appsflyer (Data Architecture)
 
Big data Overview
Big data OverviewBig data Overview
Big data Overview
 
Hadoop YARN overview
Hadoop YARN overviewHadoop YARN overview
Hadoop YARN overview
 
SAF
SAFSAF
SAF
 
REST presentation
REST presentationREST presentation
REST presentation
 
SOA & Big Data
SOA & Big DataSOA & Big Data
SOA & Big Data
 
Why the JVM?
Why the JVM?Why the JVM?
Why the JVM?
 
Azure migration
Azure migrationAzure migration
Azure migration
 
Things to think about while architecting azure solutions
Things to think about while architecting azure solutionsThings to think about while architecting azure solutions
Things to think about while architecting azure solutions
 
Soa
Soa Soa
Soa
 
Rest
RestRest
Rest
 
SOA patterns
SOA patterns SOA patterns
SOA patterns
 

Último

Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 

Último (20)

Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 

Building reliable systems from unreliable components

  • 1. Arnon Rotem-Gal-Oz Building reliable systems from unreliable components
  • 4. 0.99 reliability We have a nice little legacy business component
  • 5. And we move it to SOA 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99 0.99
  • 6. Failsafe hardware Status Technologies FT Server
  • 7. Or try to detect failure , handle it and minimize its effect on the business service © Rosendahl
  • 9. SOA Adheres to Policy governed by Binds to End Point Exposes Serves Service Understands Contracts implements Service Consumer describes Key Component Sends/Receives Messages Sends/Receives Relation
  • 10. Distributed Pipes and Layered Client Agents Filters System Server Stateless Comm. SOA is derived from SOA other styles
  • 11. SOA vs. REST Distributed Pipes and Layered Client Replicated Uniform Virtual Agents Filters System Server Repository Interface Machine Stateless Code On Cacheable Comm. Demand SOA REST
  • 12.
  • 13. System Mobile Integration 3G Video Dedicated Monitoring MMS 3rd parties Calls Client Usage Datmart Applications Ad Management Targeted Campaign Billing Acquisition Interactions branding Advertizing Mgmt. Reporting Resources Data mining Reference & Statistics Interactions Links Data Link Managment Reports Publishing Data Web Interaction tools Interfaces Front-end Designer integration
  • 14. Load balancer Smart phones Web Web MMS 3G 3G Server Server Gateway Gateway Gateway (IIS/Apache (IIS/Apache Camera Phones DMZ Firewall Load balancer App App App App App App App Server Server Server Server Server Server Server Operational Firewall Backend BI & Sync. Paper NMS Links Reporting Registeration Server Editor Web Firewall Server (IIS/Apache DB Datamart DB Advertizing clients Links usage References Admin Console DMZ
  • 16. What’s the effect of a failure - Server E1 line = 30 concurrent video Call Flow calls Service
  • 17. Service Instance Service Business logic End point reaction Distribute request Dispatcher Edge Service Instance
  • 18. What’s the effect of a failure - Channel Call Flow Call Flow Channel Call Flow Call Flow Call Flow Call FlowChannel Channel Channel Flow Channel Call Channel Call Flow Channel Call Flow Call Flow E1 line = 30 Channel Call Flow concurrent video Call Flow Channel Channel Channel calls Channel Call Flow Call Flow Channel FlowCall Channel Call FlowChannel Call FlowChannel Channel
  • 19. Service Instance with NLB Real IP : 1.1.1.4 Real IP : 1.1.1.3 Real IP : 1.1.1.2 Windows Host Cluster Host Cluster Host Service Service Edge Instance Instance Windows Kernel Windows Kernel Windows Kernel TCP/IP TCP/IP TCP/IP NLB Driver NLB Driver NIC Driver NIC Driver NIC Driver NIC NIC NIC Virtual IP : 1.1.1.1
  • 21. Request/Reply EndPoint 2. 1. Request Synchronous processing 3. Reply Service Consumer Service
  • 22. Things look Cool & Simple ™ 3G Session Call negations Render Image resutls extraction Translation identification to links
  • 23. 3G GW IVP (RV) (RV) SIP Listner 3G VAS (Cestel) RTP Image Extractor WS 3G Builder (Cestel) Alg. Engine WebRenderer Resource Manager Dispatcher WebConnector Turn out Complicated & Ugly ™
  • 24. Parallel Pipelines Key SOA Component Pattern Component Queue Relation Concern/attribute pipeline pipeline Edge Request EndPoint Request 1 EndPoint EndPoint Request 2 Perform Perform Reaction Task Task pipeline EndPoint Perform Task Service
  • 26. Consumer view var sendMmsEvent = new SendMmsEvent() { FromNumber = simpleMessageDetails.DialedNumber, Subject = mmsContents.Subject, ToNumber = simpleMessageDetails.Sender, ImageExtension = mmsContents.ImageExtension, ImageAsByteArray = mmsContents.Image, TextAsByteArray = mmsContents.Text }; eventBroker.RaiseEvent(sendMmsEvent); http://www.flickr.com/photos/crimson_wolf/2851737125/sizes/l/
  • 27. Service view [ServiceContract] public interface ImPostOffice : ImContract, IHandleSendCoupon, IHandleSendSms,IHandleStatus,IHandleAdminStatus,IHandleWapLink, IHandleSendMms { } [ServiceContract] public interface IHandleSendMms { [OperationContract] int SendMms(SendMmsEvent eventOccured); } [DataContract] public class SendMmsEvent : ImEvent { /// <summary> /// end user's number. should be in international format: +[country-code]number. Example: +491737692260 /// </summary> [DataMember] public string ToNumber { get; set; } /// <summary> /// service's number, usually a short-code. Example: 84343 /// </summary> [DataMember] public string FromNumber { get; set; }
  • 28. Edge translates external structures to internal ones public int SendMms(SendMmsEvent eventOccured) { var eventContext = eventOccured.ToString(); if (log.IsDebugEnabled) log.Debug("inside 'SendMms', event context = [" + eventContext + "]"); var fromNumber = eventOccured.FromNumber; var sender = mmsSenderFactory.Get(fromNumber); if (null == sender) { if (log.IsWarnEnabled) log.Warn("cannot get mms sender derived from '" + (fromNumber ?? "null") + "'"); return 0; } IMmsSubmitResponse response; try { var mmsMessageDetails = new MmsMessageDetails(eventOccured.ToNumber, eventOccured.TextAsByteArray, eventOccured.ImageAsByteArray, eventOccured.ImageExtension, eventOccured.Subject); response = sender.Submit(mmsMessageDetails); } catch (Exception ex) { log.Error("cannot send mms message, context = [" + eventContext + "]", ex); return 0; } if (log.IsInfoEnabled) { var responseMessage = (null == response) ? "null" : response.ToString(); log.Info("sent mms with event context = [" + eventContext + "], response = [" + responseMessage + "]"); }
  • 29. Sagas tie instances together for conversations
  • 30. Call Recovery Image Extractor SIP Identification
  • 31. Alternative : Orchestration Service Service reaction request Manage Protocol Process Schedule Coordinator route request monitor Workflow instance Offline designer Host Workflow Engine Workflows Auxiliary tools Orchestration platform
  • 32. Be Wary of Nano-Services
  • 34. Blogjecting Watchdog Edge Service EndPoint Monitor Watchdog Watchdog Monitor Agent Request Edge EndPoint Heal Reports Monitor Report Monitor Log Monitor
  • 35. Blogjects concept is about collaborating objects
  • 36. WatchDog Service A Service B WDWatcher
  • 37. WatchDog Call Recovery Image Extractor SIP Identification
  • 38.
  • 39. Service Monitor Collect Metrics collection Status Fault Monitoring Reporting & Security Dashboarding Edge/Service monitoring Status Policy governance Notify Commands Control In Monitor Act Edge/Service Service Monitor
  • 40. RESTful resource management root 1 2 3 Abcde/ Sessions/ Efgh/ / Resources/ Dispatchers/ Xyz/
  • 41. http://devrig:52141/RM/Sessions/abc/ • ATOMPUB – Session details • URI (ID) • State (start/end/status etc.) • Resources – Knows status – URI for the Resource representation on the RM – URI for the Resource itself
  • 43. WatchDog Call Recovery Image Extractor X SIP Identification WatchDog 3G Call Liveliness Monitor
  • 44. CHALLENGE – MULTI-TENNANCY (LIES, I TELL YOU, ALL LIES)
  • 45. Same event different subscribers Player (interaction Call Flow Renderer) Play Movie Event Bridge to 3rd Call Flow Party
  • 46. Routing [ServiceContract] [Participate("3G")] public interface ImPlayer : ImContract, IHandleCallStarted, IHandleC IHandlePlayMovie,IHandleCallAborted { } [ServiceContract] [Participate("3GPartner")] public interface ImXsightsGateWay : ImContract, IHandleCallAborted, IHandlePlayMovie, IHandleReadyForSearch, IHandleSearchStarted, IHandleJoinThirdParty { }
  • 47. Raise a saga initiating event Initiator A Participant A Capacity : 2 Participant B Initiator B Capacity : 1 Now what ?!
  • 49. Service Instance #1 Control Control Edge Edge Service Instance #2 Business Event Control Business Event Logic Broker Edge Broker Logic Resource Event Business Resource Allocator Service Host Logic Broker Allocator Service Host Resource Host Service Service Host Allocator Service Host Service Host Control Reservation Edge Event Business Broker Logic Resource Service Host Allocator Service Host
  • 50. Good old 2PC to the rescue
  • 51. Takeaways • Things break • Decouple • Fail Fast • Monitor & Detect • Compensate • Throw state unto others
  • 52. Arnon Rotem-Gal-Oz @arnonrgo http://arnon.me http://www.cloudvalue.com