Avoid Breaking Changes
Keep Your APIs Technology-Agnostic
Make Your Service Simple for Consumers
Hide Internal Implementation Detail
Interfacing with Customers \
The Shared Database
Synchronous Versus Asynchronous
Orchestration Versus Choreography
Remote Procedure Calls
Technology Coupling
Local Calls Are Not Like Remote Calls
Brittleness
xxxxxxxxxx
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface CustomerRemote extends Remote {
public Customer findCustomer(String id) throws RemoteException;
public Customer createCustomer(String firstname, String surname, String emailAddress)
throws RemoteException;
}