OverviewPermalink

I took this book from my bookshelf when I was preparing internal presentation about micro services for my Roche colleagues. I was mainly interested in Saga and Composite Front End patterns. But when I started, I decided to read rest of the book.

PatternsPermalink

Below you can find my short summary about every pattern described in the book:

Service HostPermalink

Every service needs the host where it works. For me Spring Framework is excellent example of the service host.

Active ServicePermalink

Very similar to Micro Services concept, when the service should be autonomous.

Transactional ServicePermalink

I know a few alternative names of this pattern: Unit of Work, Open Session in View. In JEE world implemented using ThreadLocal.

WorkflodizePermalink

Strange pattern name. I don’t really like complexity of workflow engines and prefer simple object oriented finite state machine implementation.

Edge ComponentPermalink

Separate infrastructure code from domain. Just simple like that.

Decoupled InvocationPermalink

Use event / command bus for communication.

Parallel PipelinesPermalink

Apply Unix philosophy to your services. SRP on the higher level.

Gridable ServicePermalink

Horizontal scaling.

Service InstancePermalink

Horizonatal scaling.

Virtual EndpointPermalink

Make your deployment configuration flexible.

Service WatchdogPermalink

Service monitoring should be built-in.

Secured MessagePermalink

Encrypt what should be secured on the message level (privacy, integrity, impersonation).

Secured InfrastructurePermalink

Encrypt what should be secured on the protocol level (privacy, integrity, impersonation).

Service FirewallPermalink

Security on the network level. Expose only what’s really needed.

Identity ProviderPermalink

Single Sign On.

Service MonitorPermalink

Monitoring on the business process level.

Request/ReplyPermalink

Synchronous point to point communication.

Request/ReactionPermalink

Asynchronous point to point communication.

Inversion of CommunicationsPermalink

Command Bus, Event Bus, messaging middleware in general. Complex Event Processing (CEP).

SagaPermalink

Long running business transactions. Distributed transactions without XA.

ReservationPermalink

Related to Saga, how to avoid XA transactions.

Composite Front EndPermalink

How to compose services into single web application? Author doesn’t answer my doubts in this chapter.

Client/Server/ServicePermalink

How to deal with legacy systems. How to move from monolithic architecture to SOA.

Service BusPermalink

Message Bus, Service Bus, ESB - nice explanation.

OrchestrationPermalink

Externalize business long running processes. But still encapsulate business logic in services not in the orchestrator!

Aggregated ReportingPermalink

Looks like CQRS for me.

AntipatternsPermalink

Funny names for real problems when SOA is used:

  • Knot - problems with coupling.
  • Nanoservice - problems with bounded contexts.
  • Transactional Integration - problems with XA transations.
  • Same Old Way - problems with CRUD like services.

SummaryPermalink

For sure it’s worth reading but I expected more from Arnon Rotem-Gal-Oz. Sometimes I felt that author covers only the top of the iceberg, when demons are under the hood. The sample code fragments aren’t very helpful, with high accidental complexity but don’t clearly show the problem.

In addition the book was published in 2012 but you will easily realized that author had started ten years before, some parts seems to be outdated.

Updated:

Comments