Your SlideShare is downloading. ×
Mass Transit
Mass Transit
Mass Transit
Mass Transit
Mass Transit
Mass Transit
Mass Transit
Mass Transit
Mass Transit
Mass Transit
Mass Transit
Mass Transit
Mass Transit
Mass Transit
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Mass Transit


Published on

Presentation made at the Sydney Alt.NET user group in October 2009.

Presentation made at the Sydney Alt.NET user group in October 2009.

Published in: Technology, Education
  • Be the first to comment

  • Be the first to like this

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide
  • Messaging – MSMQ, ActiveMQ, Azure/EC2
  • Async – message producers are non-blocking; fire-and-forget messaging; message consumers run in their own process; more complex;Decoupled – eliminates temporal coupling; enables isolated testing of services; reduces dependencies, allowing service reuse (e.g. credit card authorisation);Explicit contracts – agreement between producer/consumer; abstraction of implementationFault tolerance – durable message transports;Availability – small frequent transfers of related content (batching); load can be distributed over a wider time window;
  • Maximises throughput; orders are placed in a queue, correlated by name, barista can optimise processing; out-of-order deliveryError handling – write-off : discard the drink and start a fresh one; compensating action : refund money2-phase commit – wait at cashier with receipt and money on table until drink is prepared. Everything changes hands in one go, Neither cashier nor customer could leave until complete. Much simpler, but kills throughput and destroys business model, no scaleability. ESB – scales out by adding more cashiers/baristas
  • NServiceBus –UdiDahan; most mature Alt.Net product; 100m durable/transactional and 900m non-durable messages per hour on 3 blade centers (48 blades), 30 1U servers and 20 clusters.SimpleServiceBus – a fork of NServiceBus; designed to be more modular; health & performance monitoring baked in;ESB.NET – Keystroke IT Australia; core components are binary only, remainder is open-source
  • Transcript

    • 1. MassTransit
      David KeavenySenior DeveloperFairfax Digital
    • 2. Enterprise Service Bus
      An infrastructure used for enterprise integration via a service-oriented approach:
      Reliable messaging;
      Messages exchanged between services using standard messaging patterns (e.g. request/response, publish/subscribe);
      Messages consist of XML data and metadata;
      Provides services for transforming and routing of messages
    • 3. What is it?
    • 4. What is it?
      Minimised coupling
      Explicit contract
      Fault tolerant
      Data availability
    • 5. What is it?
      Hotto cocoa okudasai
      a.k.a. Starbucks Does Not Use Two-Phase Commit
    • 6. ESB Implementations
      Microsoft BizTalk
      IBM WebSphere
      TIBCO BusinessWorks
    • 7. Alt.Net ESB Implementions
    • 8. MassTransit Summary
      Originated by Chris Patterson & Dru Sellers
      Lightweight Service Bus Implementation
      Loose coupling via publish/subscribe
      Active Service pattern
      Supports MSMQ, ActiveMQ, TIBCO EMS
      Open Source, Apache 2.0 License
    • 9. MassTransit Architecture
    • 10. Testing
      Individual components testable in isolation
      Fully unit-testable using mocks and stubs
      Test-first development helps improve data contract
    • 11. Visualisation Tools
      Presents code-base logic in a visual form
      Aid in identifying composition problems
      Should be viewable on operational systems
    • 12. Real-world Usage
    • 13. Lessons Learned
      Network services are unreliable FAIL
      Ability to isolate services for testing WIN
      State-machine-based workflows WIN
      Under active developer FAIL/WIN
    • 14. Further Reading