Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Event-driven Architecture

1,885 views

Published on

Event-driven architecture is a versatile approach to designing and integrating complex software systems. These systems tend to be easier to model and build. Event-driven architecture is not a new concept, but as more organizations contemplate microservices, this approach to system design has become appropriate in more situations and is worth a fresh look.

Published in: Technology
  • Thanks for the help. I also ordered from www.HelpWriting.net
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Hello! I do no use writing service very often, only when I really have problems. But this one, I like best of all. The team of writers operates very quickly. It's called ⇒ www.HelpWriting.net ⇐ Hope this helps!
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • I like this service ⇒ www.WritePaper.info ⇐ from Academic Writers. I don't have enough time write it by myself.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Event-driven Architecture

  1. 1. Event Driven Architecture A primer… @ShawnWallace
  2. 2. The Great Debate… Monolith First? http://martinfowler.com/bliki/MonolithFirst.html Micro services First? http://martinfowler.com/articles/dont-start-monolith.htm
  3. 3. Monolithic Invoicing Inventory Logging Profiles Warehouse Orders
  4. 4. A problem with ‘Monolith First’ A product of our agile approach to our projects…smaller features finished earlier. The goal is to deploy more oCen…this is hard. One soluDon is to have smaller applicaDons.
  5. 5. Monolithic Invoicing Inventory Logging Profiles Warehouse Orders
  6. 6. SOA Orders Invoicing Inventory Logging Profiles Warehouse
  7. 7. SOA Orders Invoicing Inventory Logging Profiles Warehouse Tightly Coupled
  8. 8. SOA with Enterprise Service Bus Orders Invoicing Inventory Logging Profiles Warehouse STILL Tightly Coupled Enterprise Service Bus
  9. 9. Event Driven Architecture •  An Event is represents something that happens in a domain •  Customer Submits Order •  Customer Billed •  Payment Received •  Order Ready for Shipment •  Order Shipped •  While Events and their payload are designed at the enterprise system level, their implementaDons are leC to the specific subsystems.
  10. 10. Event Driven Architecture •  No point-to-point integraDons •  Loosely coupled, highly scalable systems •  Loosely coupled, TEAMS •  Easier to test •  Easier to change •  Topology agnosDc
  11. 11. Loosely Coupled Orders Invoicing Inventory Logging Profiles ReporDng Event Bus
  12. 12. Easy to Integrate New Systems Orders Invoicing Inventory Logging Profiles ReporDng Event Bus New System
  13. 13. Easy to Test
  14. 14. Inventory Inventory Inventory Scales Orders Invoicing Inventory Logging Profiles ReporDng Event Bus
  15. 15. The basic thesis of this article is that organizations which design systems (in the broad sense used here) are constrained to produce designs which are copies of the communication structures of these organizations. --- Melvin Conway
  16. 16. Easily Modeled as a finite state diagram
  17. 17. Other benefits •  Ease of 3rd party integraDon •  ExisDng systems can be ‘wrapped’ •  Can be deliberate about scaling •  Fault tolerant •  Event messages can be logged and ‘replayed’ •  Can test subsystems in isolaDon
  18. 18. A Retail System Sales Logger Invoicing Shipping Warehouse Rabbit MQ Exchange
  19. 19. A Retail System – PlaLorm AgnosMc Sales Logger Invoicing Shipping Warehouse Rabbit MQ Exchange
  20. 20. Order Accepted Event is generated Sales Logger Invoicing Shipping Warehouse Rabbit MQ Exchange
  21. 21. Customer Billed Event Sales Logger Invoicing Shipping Warehouse Rabbit MQ Exchange
  22. 22. Order Ready for Shipment Event Sales Logger Invoicing Shipping Warehouse Rabbit MQ Exchange
  23. 23. Order Shipped Sales Logger Invoicing Shipping Warehouse Rabbit MQ Exchange
  24. 24. Logger Consumes EVERY Event Sales Logger Invoicing Shipping Warehouse Rabbit MQ Exchange
  25. 25. Logger Consumes EVERY Event
  26. 26. For Further Reading •  THIS presentaDon (and code) on GitHub hXps://github.com/shawnewallace/choreographed_process •  Stephan Norberg EDA hXp://www.infoq.com/presentaDons/Domain-Event-Driven-Architecture •  “Programming Without a Call Stack” hXp://www.enterpriseintegraDonpaXerns.com/docs/EDA.pdf •  “Event-Driven Architecture Overview” •  hXp://www.omg.org/soa/Uploaded%20Docs/EDA/bda2-2-06cc.pdf
  27. 27. Shawn Wallace Work: shawn.wallace@centricconsulting.com Twitter: @ShawnWallace Blog: blog.shawnewallace.com http://www.about.me/shawnwallace
  28. 28. •  Event-driven architecture is a versaDle approach to designing complex soCware systems. These systems tend to be easier to model for an organizaDon as EDA embraces Conway’s Law and can oCen be modeled as a finite state machine. Event-driven architecture is not a new concept, but as more organizaDons embrace micro services, this approach to system design has become appropriate in more situaDons. In this talk we’ll: introduce event-driven architecture, talk about key components, look at a sample implementaDon of a retail system.

×