Mass Transit

  • 1,662 views
Uploaded 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.

More in: Technology , Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,662
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
16
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    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?
    Asynchronous
    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
    http://www.eaipatterns.com/ramblings/18_starbucks.html
  • 6. ESB Implementations
    Microsoft BizTalk
    IBM WebSphere
    TIBCO BusinessWorks
  • 7. Alt.Net ESB Implementions
    NServiceBus
    SimpleServiceBus
    (ESB.NET)
    MassTransit
  • 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