Building (micro) services in .NET by Sean Farmar

Kevin O'Shaughnessy
2 min readJun 11, 2017

--

Sean explains the various types of coupling developers must wrestle with

Welcome to this write-up of Sean Farmar’s talk at DeveloperDeveloperDeveloper 12 in Reading, UK.

Sean is a consultant at Particular Software, the company that has developed NServiceBus amongst other many popular commercial products.

The basic idea of micro-services is to break down a monolith into easily maintainable pieces.

Tools in .NET for developing micro-services:

  • Akka.net / Orleans (actor framework)
  • Mass Transit
  • Re-bus
  • NService Bus

Alternatively you can build your own, but Sean warns that this can end up being a lot of extra work.

“Address coupling in our software design by building loosely coupled and highly encapsulated components” — Udi Dahan

There is no such thing as a free lunch in software development. Micro-services introduce technical complexity as you build the system, and you need to weigh up the costs before deciding the best solution.

Sean spoke about the coupling aspects. He said temporal coupling is “I call you and wait for your response” and this is the most important type of coupling. There are also Spatial and Platform coupling aspects.

Decomposition

  • Breaking down functionality into small autonomous components (vertical slicing)
  • Decomposing entities (e.g. big tables with many fields split out into smaller ones)

Sean gave a demo of a simplified vertical of a hotel reservation website, which makes reservations, cancels them and charges credit cards asynchronously.

The software uses NServiceBus.

Sean showed us the ServicePulse and ServiceInsight tools as well.

For free access to “Advanced Distributed Systems Design” course with Udi Dahan go to http://go.particular.net/devday2017

--

--

Kevin O'Shaughnessy

Sr. Full Stack Web Dev promoting better professional practices, tools, solutions & helping others.