+ All Categories
Home > Software > Why Service Oriented Architecture DDD North 20151024

Why Service Oriented Architecture DDD North 20151024

Date post: 11-Apr-2017
Category:
Upload: sean-farmar
View: 353 times
Download: 2 times
Share this document with a friend
23
Why Service Oriented Architecture? Sean Farmar @farmar
Transcript
Page 1: Why Service Oriented Architecture DDD North 20151024

Why Service Oriented

Architecture? Sean Farmar

@farmar

Page 2: Why Service Oriented Architecture DDD North 20151024

The Evolution•Small monolith•Success == growth == features ++•Team Scaling•Maintenance nightmare == high

risk•So we end up with …

Page 3: Why Service Oriented Architecture DDD North 20151024

Big Ball of Mud

Page 4: Why Service Oriented Architecture DDD North 20151024

So I went to my master

Page 5: Why Service Oriented Architecture DDD North 20151024

Solve the problem you want?

•Coupling your problem is…•Hmmmm•SOA your solution will be

Page 6: Why Service Oriented Architecture DDD North 20151024

Why SOA?•SOA's tenets are about reducing

coupling.

Page 7: Why Service Oriented Architecture DDD North 20151024

•Afferent (dependents)•Efferent (depend on)•Temporal (time, RPC)•Spatial (deployment, endpoint

address)•Platform (protocols, .Net

Remoting)

Coupling

Page 8: Why Service Oriented Architecture DDD North 20151024

Coupling: Afferent & Efferent

•Afferent (dependents)•Efferent (depend on)

Afferent & Efferent solutions:•Attempt to minimize•Zero coupling is not possible

Page 9: Why Service Oriented Architecture DDD North 20151024

Coupling: TemporalTemporal (time, RPC)

Temporal solutions:•Asynchronous messaging•Publish Subscribe

Page 10: Why Service Oriented Architecture DDD North 20151024

Coupling: Spatial Spatial (deployment, endpoint address)

Spatial solutions:•Delegate the endpoint/service location to the infrastructure, not in application code

Page 11: Why Service Oriented Architecture DDD North 20151024

Coupling: PlatformPlatform AKA Interoperability (protocols, .Net Remoting)Platform solutions:•XML on the wire.•Use standards based transfer protocol like http•“Share contract and schema, not class or type”

Page 12: Why Service Oriented Architecture DDD North 20151024

Fallacies of Distributed Computing•The administrator will know what to

do•The network is reliable•Latency isn’t a problem•Bandwidth isn’t a problem•The network is secure•Topology won’t change

Page 13: Why Service Oriented Architecture DDD North 20151024

Fallacies of Distributed Computing•Transport cost isn’t a problem

•The network is homogeneous•The system is atomic/monolithic•The system is finished•Business logic can and should be

centralized

Page 14: Why Service Oriented Architecture DDD North 20151024

In practice

Page 15: Why Service Oriented Architecture DDD North 20151024

In practice• Vertical Slicing•Using asynchronous messaging •Using publish subscribe • Business domain decomposition• Explicit intentions [naming, context]• Single Responsibility• Command Query Separation• “Clean Code” (Uncle Bob)

Page 16: Why Service Oriented Architecture DDD North 20151024

Monolith

UI

BL

DAL

DB

Tight CouplingLoose Coupling

Page 17: Why Service Oriented Architecture DDD North 20151024

Vertical Slicing

UI

BL

DAL

DB Referential Integrity

Tight CouplingLoose Coupling

Re-introduces Coupling

SalesConte

ntCRMOps

Page 18: Why Service Oriented Architecture DDD North 20151024

Publish Subscribe [pub/sub]

Page 19: Why Service Oriented Architecture DDD North 20151024

Publish Subscribe [pub/sub]

Page 20: Why Service Oriented Architecture DDD North 20151024

Subscribe to Customer Status

Updated

PublishCustomer Status Updated

Save status locally

Subscribe to Product Product Pricing UpdatedPricing Updated

PublishProduct Pricing Updated

Save pricing locally

Place Order

Publish Order Accepted

Sales

Marketing

Customer Care

Page 21: Why Service Oriented Architecture DDD North 20151024

Summary

•SOA•NServiceBus•Particular.net•You can do it

Page 22: Why Service Oriented Architecture DDD North 20151024

Learn to design better systems

Get access to 2 full days of Udi Dahan's Advanced

Distributed Systems Design video course.

Sign up here:http://go.particular.net/

DDDNorthAccess code : DNORT

Expiration date: Nov 16th

Page 23: Why Service Oriented Architecture DDD North 20151024

Q&A

Thank You!Sean Farmartwitter: @farmarParticular.net


Recommended