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.
Comments