A channels represents a subset of an object's properties. This is used to optimize processing performed by the geometry pipeline system by minimizing the amount of processing that must be performed by each modifier.
For example, there is a separate channel for the vertices of the object. If a modifier affects only the vertices, the system has considerably less work to do than if it had to reevaluate the entire state of the object including its face structure, UV coordinates, material assignments, etc. The Bend modifier is an example of a modifier that affects only the vertices (geometry) of an object; other channels do not require evaluation when the Bend modifier modifies vertices.
There are separate object channels for:
Each object defines the meaning of the channels. The three main channels (those that get allocated dynamically) are the GEOM_CHANNEL, TOPO_CHANNEL, and the TEXMAP_CHANNEL.
For example in a TriObject the GEOM_CHANNEL to mean the points or vertices of the mesh. The TriObject also defines the TOPO_CHANNEL to mean the face or polygon structures. This includes the smoothing groups and materials as well. For a SplineShape the TOPO_CHANNEL is undefined. This is because a SplineShape is essentially just an array of points and has no topology.
Individual caches can be constructed for different channels at different points along the pipeline. So for example, if the texture coordinate portion of the pipeline changes, and the geometric portion of the pipeline is cached, the geometry portion won't need to be reevaluated. This means that modifiers that only depend on geometry may not need to be reevaluated.