Successfully reported this slideshow.
Your SlideShare is downloading. ×

SOA Lessons Learnt Krakow

SOA Lessons Learnt Krakow

Download to read offline

Service Oriented Architecture has been around for a while, now Microservices is the new black, that’s cool, but can we learn from when we failed and succeeded implementing SOA? There are some really useful lessons we can take and avoid the pitfalls.

Service Oriented Architecture has been around for a while, now Microservices is the new black, that’s cool, but can we learn from when we failed and succeeded implementing SOA? There are some really useful lessons we can take and avoid the pitfalls.

Advertisement
Advertisement

More Related Content

Advertisement

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

SOA Lessons Learnt Krakow

  1. 1. SOA Lessons Learnt (OR Microservices Done Better) Sean Farmar @farmar
  2. 2. My journey to SOA Tried all “Best Practices” Layers and Tiers Distributed monoliths using Web Services … and failed
  3. 3. So I went to my master
  4. 4. Solve the problem you want? mmmm… Coupling your problem is…
  5. 5. Coupling
  6. 6. Temporal (time, synchronous calls) Spatial (deployment, endpoint address) Platform (protocols, .Net Remoting) Coupling Dimensions
  7. 7. Why SOA / Microservices? “Address coupling in our software design by building loosely coupled and highly encapsulated components” Udi Dahan
  8. 8. Fallacies of Distributed Computing 1. The network is reliable. (Bill Joy and Tom Lyon) 2. Latency is zero. (Bill Joy and Tom Lyon) 3. Bandwidth is infinite. (Bill Joy and Tom Lyon) 4. The network is secure. (Bill Joy and Tom Lyon) 5. Topology doesn’t change. (Peter Deutsch) 6. There is one administrator. (Peter Deutsch) 7. Transport cost is zero. (Peter Deutsch) 8. The network is homogeneous. (James Gosling)
  9. 9. The Fallacies EBook • Go to: http://go.particular.net/KGD16
  10. 10. Encapsulation Autonomy Decomposing Business entities SRP Keep your vertical slice thin, top to bottom
  11. 11. Monolith UI BL DAL DB Tight Coupling Loose Coupling
  12. 12. Vertical Slicing UI BL DAL DB Referential Integrity Tight Coupling Loose Coupling Re-introduces Coupling Sales Conten t CRMOps
  13. 13. Lessons learnt It’s hard (er) Decomposing your business domain, is hard, avoid the pitfalls of standard design methodologies Messaging: Fire and forget CQS: Separating data writes and data reads Data (write) ownership Referential integrity and GUIDS
  14. 14. Lessons learnt(cont.) DATA: separate OLTP and reporting, eventual consistency Monitoring - Lights on Testing is HARD Deployment - Automate everything Organization and people, trust
  15. 15. Summary • Avoid all dimensions of coupling • No synchronous communication between components/microservices, • Don't share data, use view/read models to share read only data • Decomposing your business domain and entities • You can do it on .Net platform using NServiceBus • Blog post: http://particular.net/blog/goodbye- microservices-hello-right-sized-services • Fallacies EBook: http://go.particular.net/KGD16
  16. 16. Q&A Thank You! Sean Farmar twitter: @farmar Particular.net

×