I just wanted to share a great article by Martin Fowler, about Micro Services.
IMHO such "Micro Services" are the proper way of defining a SOA project,
If we follow the "Single Responsibility" principle, we will define small uncoupled services, which do one single task. This will fulfill the "Interface Segregation" principle, and since we rely on abstractions, the "Liskov Substitution" will also apply. By definition, the SOA catalog/publish mechanism will perform "Dependency Inversion".
All this sounds just like the definition of "Micro Services".
Worth reading, and a nice illustration of how to build mORMot applications!