An Aqueduct application is centered around an application channel; an object that handles initialization tasks. For every application that you write, you create exactly one subclass of ApplicationChannel and implement its required methods. These methods prepare any service objects (like database connections) and controllers (objects that handle requests) that your application will use.

You manage loading and reading configuration data - such as development vs. production environment options - from within an application channel.

An application channel is instantiated for each thread your application executes on.