The first stage of expansion provides only basic services, which are services that each provide a basic business functionality and that it does not make sense to split into multiple services. Usually, these services provide the first fundamental business layer for one specific backend or problem domain. Typically, these services are short-term running and conceptually stateless (see Stateless Services). Thus, synchronous calls may be useful.
The role of these services is to wrap a backend or problem domain so that consumers (and higher-level services) can access the backend by using the common SOA infrastructure.
There are two types of basic services:
Basic data services
Basic logic services
Basic data services read or write data from or to one backend system. These services typically each represent a fundamental business operation of the backend.
Basic services encapsulate platform-specific aspects and implementation details from the outside world, so that the consumer can request a service without knowing how it is implemented.
These services should provide some minimal business functionality. That is, there should be no technical interface, as in a service that returns a database table (see the "BUSINESS-DRIVEN VERSUS TECHNICALLY DRIVEN BUSINESS INTERFACES" sidebar in Services). Instead, basic data services typically either read and return or write chunks of data that usually belong together, according to the business needs. That is, business guys ...