SlideShare uma empresa Scribd logo
1 de 36
Hunting rabbits and event-
  driven programming
      Marjan Nikolovski
{ Agenda
 ‹   Basics and introduction to EDA
 ‹   Messaging patterns
 ‹   Internal and cross boundaries messaging
 ‹   Products and technologies
 ‹   Demo
{ Basics and introduction to EDA
 ‹ So what is an event ?
    ‹   Event-driven behavior as part of our life
 ‹ What is EDA ?
    ‹ Event-driven behavior as part of out apps
    ‹ Current apps situation
    ‹ To event-driven behavior situation
 ‹ How can we establish event-driven architecture ?
    ‹ Layering introduced in event-driven apps
 ‹ Why we want to build event-driven apps?
{ So what is an event ?
 ‹   An event is an occurrence within a particular system or domain; it is
     something that has happened, or is contemplated as having happened
     in that domain.
 ‹   Characteristics
      ‹   Unique
      ‹   Time relevant
Event-driven behavior as part of
{ our life



      On new                  On      Wait for
                    Go
       salary               account     next
                 shopping
      received               empty     salary
{ What is EDA ?
 ‹   WIKI says: Event-driven architecture (EDA) is a software architecture
     pattern promoting the production, detection, consumption of, and
     reaction to events.




                  Event              Event              Event
                producer           processor          consumer
Event-driven behavior as part of
{ out apps
                                  Observation




              Active                                      Predictive
           diagnostics                                    processing
                                   Event-
                                   driven
                                    apps



                     Dynamic
                                                 Information
                    operational
                                                dissemination
                     behavior
Current apps situation
{ Request – response scenario
Current apps situation
{ Request – response scenario
Current apps situation
{ Pull (time based)scenario
To event-driven behavior situation
{ Event scenario
                              Don’t call us, we will
                                            call you
To event-driven behavior situation
{ Event scenario
To event-driven behavior situation
{ Event scenario
To event-driven behavior situation
{ Event scenario
How can we establish event-driven
{ architecture ?
 ‹   Good analyses
      ‹   Stick to Open/Closed and Single responsibility principles
      ‹   Define the domain
 ‹   Define:
      ‹   Who are event producers
      ‹   Who are event consumers
 ‹   Introduce event dispatcher (the mediator)
 ‹   Determine event channel
 ‹   Everyone do what they are supposed to do, everything else they
     delegate to other involved parties via the event dispatcher
Layering introduced in event-
{ driven apps
 ‹   Event publisher
      ‹   Any client that generates events
 ‹   Event mediation and Event channels
      ‹   Event distribution
      ‹   Events transport via memory, raw, xml, rest, protobuff …
 ‹   Event subscriber
      ‹   Any client that consumes the events
 ‹   Choose event processing strategy
      ‹   Simple processing (forwarding)
      ‹   Event streaming (creating events from streamed data and send it to subscribers)
      ‹   Complex event processing (pattern detection on events)
Layering introduced in event-
{ driven apps




                        and channels




                                       Consumers
                         Mediation
            Producers
Why we want to build event-driven
{ apps?
 ‹   Pros
      ‹   Exploit parallelism
      ‹   Better system design - each event has its own processor (single responsibility)
      ‹   Reduce dependencies in the system
      ‹   Reduce coupling
      ‹   Easier testing
      ‹   Real time monitoring
      ‹   Scalability
      ‹   Maintainability
 ‹   Cons
      ‹   Highly abstract concept
{ Messaging patterns
 ‹   Publish-subscribe aka PubSub
 ‹   Topic based PubSub
 ‹   Point-to-point
 ‹   Request-reply
 ‹   Store and forward
 ‹   Pipeline
{ Publish-subscribe aka PubSub
                                            Publisher




                                      Publish an event




                                             Topic




                       Consumes the event               Consumes the event




          Subscriber                                                         Subscriber
{ Topic based PubSub
                                                    Topic




                      Consumes the event                        Consumes the event




         Subscriber                                                                  Subscriber




                              Consumes the event


         Subscriber
                                                   Subtopic




                                             Publish an event




                                                   Publisher
{ Point-to-point


   Publisher       Queue   Subscriber
{ Request-reply
                                  Subscriber




   Publisher/Subscriber   Topic   Subscriber




                                  Subscriber
{ Store and forward
                                     Subscriber




      Publisher/Subscriber   Topic   Subscriber




                                     Subscriber




                             Data
{ Pipeline


  Publisher   Topic   Subscriber   Subscriber   Subscriber
Internal and cross boundaries
{ messaging
 ‹   Internal messaging via in memory event dispatcher
      ‹   Decorate the subscribers in the system
      ‹   Decorate the receivers in the system
      ‹   Develop custom event dispatcher that will dispatch the producer events to the
          consumer
 ‹   Cross boundaries messaging via
      ‹   Any full-duplex communication
      ‹   Web/Url callbacks
      ‹   Web based push notifications - long pooling AJAX request
      ‹   Queue
      ‹   Custom messaging software
{ Products and technologies
 ‹   XMPP based products
     ‹   Ejabberd
 ‹   AMQP based products
     ‹   RabbitMQ
     ‹   OpenAMQP
     ‹   Apache QPID
 ‹   STOMP based products
     ‹   ActiveMQ
 ‹   JMS
 ‹   Other
     ‹   MSMQ
     ‹   Azure Service Bus
     ‹   ZeroMQ
{ AMQP protocol
 ‹   Advanced message queuing protocol for message-oriented middleware
      ‹   Queuing
      ‹   Routing (point to point, PubSub)
      ‹   Reliable
      ‹   Secure
 ‹   Interoperability on protocol level instead of API level
 ‹   So how does it work behind the scenes:
      ‹   Exchanges
      ‹   Queues
      ‹   Bindings
      ‹   Messages
{                               RabbitMQ Broker




    Publisher

                           Binding            Queue   Consumer
                Exchange

    Publisher
                Exchange
                           Binding            Queue   Consumer


    Publisher
{ Message exchange
                        Topic                       Fanout         Direct
   Exchange



   Bindings   System.Logs.*   System.Interupts.*
                                                                      SomeKey




                      Q1           Q2              Q3    Q4   Q5      Q6
   Queues
{
Questions?
• Complete electronic evaluation forms
  on the computers in the hall and
  enter to win!
   – Telerik Ultimate Collection
   – RedGate .NET Reflector VSPro
   – ComponentOne Enterprise Studio Suite
   – Pluralsight yearly subscriptions
   – CodeSmith Tools Generator Pro
     Personal
   – JetBrains ReSharper
   – Semos Education Training Voucher
   – and many more…
Yellow.4 marjan nikolovski hunting rabbits and event-driven programming

Mais conteúdo relacionado

Semelhante a Yellow.4 marjan nikolovski hunting rabbits and event-driven programming

Running a Massively Parallel Self-serve Distributed Data System At Scale
Running a Massively Parallel Self-serve Distributed Data System At ScaleRunning a Massively Parallel Self-serve Distributed Data System At Scale
Running a Massively Parallel Self-serve Distributed Data System At Scale
Zhenzhong Xu
 
From Monoliths to Microservices - A Journey With Confluent With Gayathri Veal...
From Monoliths to Microservices - A Journey With Confluent With Gayathri Veal...From Monoliths to Microservices - A Journey With Confluent With Gayathri Veal...
From Monoliths to Microservices - A Journey With Confluent With Gayathri Veal...
HostedbyConfluent
 
SOA Pattern Event Driven Messaging
SOA Pattern Event Driven MessagingSOA Pattern Event Driven Messaging
SOA Pattern Event Driven Messaging
WSO2
 
Restate: Event-driven Asynchronous Services, Easy as Synchronous RPC
Restate: Event-driven Asynchronous Services, Easy as Synchronous RPCRestate: Event-driven Asynchronous Services, Easy as Synchronous RPC
Restate: Event-driven Asynchronous Services, Easy as Synchronous RPC
HostedbyConfluent
 

Semelhante a Yellow.4 marjan nikolovski hunting rabbits and event-driven programming (20)

Band of brothers, building scalable social web apps on windows azure with asp...
Band of brothers, building scalable social web apps on windows azure with asp...Band of brothers, building scalable social web apps on windows azure with asp...
Band of brothers, building scalable social web apps on windows azure with asp...
 
Running a Massively Parallel Self-serve Distributed Data System At Scale
Running a Massively Parallel Self-serve Distributed Data System At ScaleRunning a Massively Parallel Self-serve Distributed Data System At Scale
Running a Massively Parallel Self-serve Distributed Data System At Scale
 
Netflix Play API: Why we built an evolutionary architecture
Netflix Play API: Why we built an evolutionary architectureNetflix Play API: Why we built an evolutionary architecture
Netflix Play API: Why we built an evolutionary architecture
 
Service workers and their role in PWAs
Service workers and their role in PWAsService workers and their role in PWAs
Service workers and their role in PWAs
 
Domain events & Kafka in Ruby applications
Domain events & Kafka in Ruby applicationsDomain events & Kafka in Ruby applications
Domain events & Kafka in Ruby applications
 
Linking Services and Linked Data: Keynote for AIMSA 2012
Linking Services and Linked Data: Keynote for AIMSA 2012Linking Services and Linked Data: Keynote for AIMSA 2012
Linking Services and Linked Data: Keynote for AIMSA 2012
 
From Monoliths to Microservices - A Journey With Confluent With Gayathri Veal...
From Monoliths to Microservices - A Journey With Confluent With Gayathri Veal...From Monoliths to Microservices - A Journey With Confluent With Gayathri Veal...
From Monoliths to Microservices - A Journey With Confluent With Gayathri Veal...
 
Mesh-ing around with Streams across the Enterprise | Phil Scanlon, Solace
Mesh-ing around with Streams across the Enterprise | Phil Scanlon, SolaceMesh-ing around with Streams across the Enterprise | Phil Scanlon, Solace
Mesh-ing around with Streams across the Enterprise | Phil Scanlon, Solace
 
SOA Pattern Event Driven Messaging
SOA Pattern Event Driven MessagingSOA Pattern Event Driven Messaging
SOA Pattern Event Driven Messaging
 
Event Sourcing in less than 20 minutes - With Akka and Java 8
Event Sourcing in less than 20 minutes - With Akka and Java 8Event Sourcing in less than 20 minutes - With Akka and Java 8
Event Sourcing in less than 20 minutes - With Akka and Java 8
 
Restate: Event-driven Asynchronous Services, Easy as Synchronous RPC
Restate: Event-driven Asynchronous Services, Easy as Synchronous RPCRestate: Event-driven Asynchronous Services, Easy as Synchronous RPC
Restate: Event-driven Asynchronous Services, Easy as Synchronous RPC
 
Ss2gx
Ss2gxSs2gx
Ss2gx
 
Reactive programming
Reactive programmingReactive programming
Reactive programming
 
Data Con LA 2022 - Event Sourcing with Apache Pulsar and Apache Quarkus
Data Con LA 2022 - Event Sourcing with Apache Pulsar and Apache QuarkusData Con LA 2022 - Event Sourcing with Apache Pulsar and Apache Quarkus
Data Con LA 2022 - Event Sourcing with Apache Pulsar and Apache Quarkus
 
apidays LIVE Jakarta - Building an Event-Driven Architecture by Harin Honesty...
apidays LIVE Jakarta - Building an Event-Driven Architecture by Harin Honesty...apidays LIVE Jakarta - Building an Event-Driven Architecture by Harin Honesty...
apidays LIVE Jakarta - Building an Event-Driven Architecture by Harin Honesty...
 
Eventsggx
EventsggxEventsggx
Eventsggx
 
Developing Serverless Applications on Kubernetes with Knative - OSCON 2019
Developing Serverless Applications on Kubernetes with Knative - OSCON 2019Developing Serverless Applications on Kubernetes with Knative - OSCON 2019
Developing Serverless Applications on Kubernetes with Knative - OSCON 2019
 
Deconstructing Monoliths with Domain Driven Design
Deconstructing Monoliths with Domain Driven DesignDeconstructing Monoliths with Domain Driven Design
Deconstructing Monoliths with Domain Driven Design
 
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with K...
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with K...Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with K...
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with K...
 
«Real Time» Web Applications with SignalR in ASP.NET
«Real Time» Web Applications with SignalR in ASP.NET«Real Time» Web Applications with SignalR in ASP.NET
«Real Time» Web Applications with SignalR in ASP.NET
 

Mais de Marjan Nikolovski (7)

Built to last javascript for enterprise
Built to last   javascript for enterpriseBuilt to last   javascript for enterprise
Built to last javascript for enterprise
 
Enterprise js pratices
Enterprise js praticesEnterprise js pratices
Enterprise js pratices
 
Skyrocketing to the cloud with Windows Azure
Skyrocketing to the cloud with Windows AzureSkyrocketing to the cloud with Windows Azure
Skyrocketing to the cloud with Windows Azure
 
No sql - { If and Else }
No sql - { If and Else }No sql - { If and Else }
No sql - { If and Else }
 
Anti Corruption Layers
Anti Corruption LayersAnti Corruption Layers
Anti Corruption Layers
 
High Performance Computing
High Performance ComputingHigh Performance Computing
High Performance Computing
 
Entity Framework 4
Entity Framework 4Entity Framework 4
Entity Framework 4
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Último (20)

Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 

Yellow.4 marjan nikolovski hunting rabbits and event-driven programming

  • 1.
  • 2. Hunting rabbits and event- driven programming Marjan Nikolovski
  • 3.
  • 4.
  • 5. { Agenda ‹ Basics and introduction to EDA ‹ Messaging patterns ‹ Internal and cross boundaries messaging ‹ Products and technologies ‹ Demo
  • 6. { Basics and introduction to EDA ‹ So what is an event ? ‹ Event-driven behavior as part of our life ‹ What is EDA ? ‹ Event-driven behavior as part of out apps ‹ Current apps situation ‹ To event-driven behavior situation ‹ How can we establish event-driven architecture ? ‹ Layering introduced in event-driven apps ‹ Why we want to build event-driven apps?
  • 7. { So what is an event ? ‹ An event is an occurrence within a particular system or domain; it is something that has happened, or is contemplated as having happened in that domain. ‹ Characteristics ‹ Unique ‹ Time relevant
  • 8. Event-driven behavior as part of { our life On new On Wait for Go salary account next shopping received empty salary
  • 9. { What is EDA ? ‹ WIKI says: Event-driven architecture (EDA) is a software architecture pattern promoting the production, detection, consumption of, and reaction to events. Event Event Event producer processor consumer
  • 10. Event-driven behavior as part of { out apps Observation Active Predictive diagnostics processing Event- driven apps Dynamic Information operational dissemination behavior
  • 11. Current apps situation { Request – response scenario
  • 12. Current apps situation { Request – response scenario
  • 13. Current apps situation { Pull (time based)scenario
  • 14. To event-driven behavior situation { Event scenario Don’t call us, we will call you
  • 15. To event-driven behavior situation { Event scenario
  • 16. To event-driven behavior situation { Event scenario
  • 17. To event-driven behavior situation { Event scenario
  • 18. How can we establish event-driven { architecture ? ‹ Good analyses ‹ Stick to Open/Closed and Single responsibility principles ‹ Define the domain ‹ Define: ‹ Who are event producers ‹ Who are event consumers ‹ Introduce event dispatcher (the mediator) ‹ Determine event channel ‹ Everyone do what they are supposed to do, everything else they delegate to other involved parties via the event dispatcher
  • 19. Layering introduced in event- { driven apps ‹ Event publisher ‹ Any client that generates events ‹ Event mediation and Event channels ‹ Event distribution ‹ Events transport via memory, raw, xml, rest, protobuff … ‹ Event subscriber ‹ Any client that consumes the events ‹ Choose event processing strategy ‹ Simple processing (forwarding) ‹ Event streaming (creating events from streamed data and send it to subscribers) ‹ Complex event processing (pattern detection on events)
  • 20. Layering introduced in event- { driven apps and channels Consumers Mediation Producers
  • 21. Why we want to build event-driven { apps? ‹ Pros ‹ Exploit parallelism ‹ Better system design - each event has its own processor (single responsibility) ‹ Reduce dependencies in the system ‹ Reduce coupling ‹ Easier testing ‹ Real time monitoring ‹ Scalability ‹ Maintainability ‹ Cons ‹ Highly abstract concept
  • 22. { Messaging patterns ‹ Publish-subscribe aka PubSub ‹ Topic based PubSub ‹ Point-to-point ‹ Request-reply ‹ Store and forward ‹ Pipeline
  • 23. { Publish-subscribe aka PubSub Publisher Publish an event Topic Consumes the event Consumes the event Subscriber Subscriber
  • 24. { Topic based PubSub Topic Consumes the event Consumes the event Subscriber Subscriber Consumes the event Subscriber Subtopic Publish an event Publisher
  • 25. { Point-to-point Publisher Queue Subscriber
  • 26. { Request-reply Subscriber Publisher/Subscriber Topic Subscriber Subscriber
  • 27. { Store and forward Subscriber Publisher/Subscriber Topic Subscriber Subscriber Data
  • 28. { Pipeline Publisher Topic Subscriber Subscriber Subscriber
  • 29. Internal and cross boundaries { messaging ‹ Internal messaging via in memory event dispatcher ‹ Decorate the subscribers in the system ‹ Decorate the receivers in the system ‹ Develop custom event dispatcher that will dispatch the producer events to the consumer ‹ Cross boundaries messaging via ‹ Any full-duplex communication ‹ Web/Url callbacks ‹ Web based push notifications - long pooling AJAX request ‹ Queue ‹ Custom messaging software
  • 30. { Products and technologies ‹ XMPP based products ‹ Ejabberd ‹ AMQP based products ‹ RabbitMQ ‹ OpenAMQP ‹ Apache QPID ‹ STOMP based products ‹ ActiveMQ ‹ JMS ‹ Other ‹ MSMQ ‹ Azure Service Bus ‹ ZeroMQ
  • 31. { AMQP protocol ‹ Advanced message queuing protocol for message-oriented middleware ‹ Queuing ‹ Routing (point to point, PubSub) ‹ Reliable ‹ Secure ‹ Interoperability on protocol level instead of API level ‹ So how does it work behind the scenes: ‹ Exchanges ‹ Queues ‹ Bindings ‹ Messages
  • 32. { RabbitMQ Broker Publisher Binding Queue Consumer Exchange Publisher Exchange Binding Queue Consumer Publisher
  • 33. { Message exchange Topic Fanout Direct Exchange Bindings System.Logs.* System.Interupts.* SomeKey Q1 Q2 Q3 Q4 Q5 Q6 Queues
  • 34. {
  • 35. Questions? • Complete electronic evaluation forms on the computers in the hall and enter to win! – Telerik Ultimate Collection – RedGate .NET Reflector VSPro – ComponentOne Enterprise Studio Suite – Pluralsight yearly subscriptions – CodeSmith Tools Generator Pro Personal – JetBrains ReSharper – Semos Education Training Voucher – and many more…

Notas do Editor

  1. Predictive processing – complex event processing, detecting patterns, detecting frauds, eliminate eventsDynamic operational behavior – content driven event deliveryInformation dissemination – right message in the right time to the right person