Chapter 1. Components of Theon

Theon is a system for developing, deploying, maintaining and accessing the content of one or more PostgreSQL databases in a live production environment. Theon has three main components: TheonTK, TheonCoupler and TheonUI.

TheonTK is a command line toolkit that is the primary interface for managed development of PostgreSQL databases and associated structures (each referred to as a model). TheonTK also provides a control interface for TheonCoupler and TheonUI.

TheonCoupler is a generic in-database synchronisation mechanism that allows any database table content to be automatically maintained from external (or internal) data sources (each referred to as a stream). TheonCoupler is specfically used within Theon for importing an existing PostgreSQL database as a model and other internal processes, but it can also be used for automatically getting data into any Theon managed PostgreSQL database.

TheonUI is a generic Python WSGI server and Javascript web browser client that allows database content to be viewed and updated by non-technical end users. TheonUI is specfically used within Theon for manipulation of a model, but it can be used as a production administrative interface for any Theon managed PostgreSQL database. As the server and client are entirely database agnostic they could also be used for any PostgreSQL database, not just those managed with Theon. To function the TheonUI client and server require one or more modules (data sets). A module contains information about a database and definitions of desktops (business workflows). Together these define the user interface. TheonTK can be used to automatically build and maintain these data sets for any Theon managed PostgreSQL database, although they could be built in other ways independently of Theon. Similarly, databases can be managed with Theon, but other independent interfaces used in place of, or alongside, TheonUI.