The modules are the main way that library workers interact with the system. Voyager is broken down into different modules that are focused on helping with certain tasks commonly done in a library. They are implemented as custom Microsoft Windows programs that talk to a centralized server and database.
The modules are as follows:
There is no programming API to Voyager as such. There is some documentation about the server-side generation of reports. However, only someone with access to the server would be able to use this information.
For ordinary workers, the only window into Voyager is via the exposed tables of the Voyager database. The Access Reports frontend to this database provides dozens of pre-built SQL queries written by Endeavor to help library workers. It is also possible to write software that connects directly to the database and reads the tables from there. However none of the indexing that makes Web Voyager so fast is exposed for the ordinary programmer.
The tables of Voyager are short-hand versions of the MARC records of the books. The actual MARC is stored as BLOBs but certain portions of the MARC are actual tables. For example, BIB_TEXT.TITLE is, naturally, the MARC Bibliographic Record field that holds the Title. The Bibliographic Records live in tables named BIB*. The Holdings records are in tables named MFHD* (Marc Format for Holdings Data). The Authority Records are in AUTH.
Voyager adds its own record, called the 'Item Record'. This stores the barcode, 'media type', location, and other information. The result of this is that there can be some redundant pieces of information in the database, particularly 'location' and 'media type'.
There are 'user groups' and meetings of the people who use Voyager. The biggest user is the Library of Congress but many universities, museums, and community colleges also use Voyager.