Title: DataChannel

"org.apache.cayenne.DataChannel" is an abstraction of Cayenne persistence stack. It is very simple - it defines only 4 methods, two for actually performing persistent operations, one to access metadata, and one - to access EventManager:

DataChannel.java
public interface DataChannel {

    QueryResponse onQuery(ObjectContext originatingContext, Query query);

    GraphDiff onSync(ObjectContext originatingContext, GraphDiff changes, int syncType);

    EventManager getEventManager();

    EntityResolver getEntityResolver();
}

DataChannel is rarely used by the application directly. Instead ObjectContexts use it internally as an abstract persistent store. There are few kinds of DataChannels in Cayenne: