Mention the SOA Principles?

Thomas Erl was the first to establish SOA principles. Any excellent architecture that uses SOA design to develop its goods and services must adhere to these eight principles:

  1. Standardized service contract: Services abide by a communications agreement, as described by one or more service-description papers collectively.

  2. Service loose coupling: Services maintain a connection in which dependencies are minimized and just mutual awareness is required.

  3. Service abstraction: Services conceal logic from the outside world beyond the descriptions in the service contract.

  4. Reusability of services: Logic is separated into services in order to encourage reuse.

  5. Autonomy of services: Services are in charge of the logic they contain.

  6. Service statelessness: Services save resources by delaying the maintenance of state information until it is absolutely essential.

  7. Service discoverability: Services are augmented with communicative metadata that allows them to be discovered and comprehended more efficiently.

  8. Composability of services: Services are effective composition participants, regardless of the composition’s size or complexity.

Service Oriented Architecture (SOA) means that a solution will be split into several loosely coupled modules (services) and these modules will communicate with each other via WEB API. This type of architecture provides great possibilities for scaling, fault isolation and maintenance.

We used SOA recently while designing and later developing a prominent Healthcare project. There was a risk to face some difficulties with log monitoring but we dealt with it successfully using Apache Flume as log aggregation tool.