Frext: a replicator for Firebird databases

Frext is a tool to provide replication between two or more databases. Frext stands for Firebird Replication Extension. It copies data from one database to another without requiring physical contact between the databases. Databases are in sync and stay in sync. Frext can be used for mobile solutions, providing by-directional or two way replication to and from a large number of remote databases or in the server space, replicating data from server to server on a one-to-one basis.

Frext is built upon Firebird, a very powerful but yet easy to manage Open Source database, the finished product will further enhance capabilities of Firebird. Java is used for client programming to achieve operating system independence.

Mission

The ultimate goal of Frext is building the best-of-breed replication tool for Firebird databases, providing all the good from existing products while closing down any imperfection. Frext will be Open Source under the GPL license and cross-platform, fully transparent, versatile and yet easy to install, configure and maintain.

Key facts

  • Transaction based. Replication is initiated by database transactions, not by table comparison
  • Message based. Communication between different databases is done by messages, so that each database doesn't have be in direct physical contact with each other
  • Message transport by file. Plain & simple. Other transport channels like mail are easily added through native scripting on the OS level
  • Transparent. Each step in the replication process is traceable; even the messages themselves are human readable
  • Robust. Each replication action is executed in the order in which they are produced on the sender database; there's a missing-message-mechanism; guarantied delivery which means that each replicated transaction will get to the endpoint; transaction grouping: operations within one transaction on the producer is re-executed on the receiver with the same transaction
  • Versatile. Frext can be used for server-to-server or server-to-laptop replication; Frext can also be used solely as a front end (for producing messages) or just as back end (just for receiving messages) in a multi-application environment; data transformation can be done, e.g. through the use of a intermediate database; Frext can be used solely as a transaction log viewer
  • Cross-platform. To make sure Frext is a full cross-platform tool, it is written in Java; because of the thin client concept (most of the logic is within the database itself, i.e. procedures, triggers, etc.), cross-platform execution is a natural thing for Frext
  • Open Source. Frext will developed under the GPL License providing an Open Source tool on top of an Open Source database, Firebird
  • Ease of installation. System objects (tables, procedures, etc.) of Frext can be installed with one action; data extracts can be done  automatically; no need to change the structure of production tables
  • Versatility of configuration. Many configuration methods: by XML-file, by SQL-statements, etc.; very easy to implement partitioning, this is done fully automatic; very easy to implement replication of a limited set of fields
  • Manageable from a central point. All log data is written back (through replication of course) to the producer; this database serves as a central point of controlling and handling all underlying databases

Project status

Pre-alpha. Project is started, code is being prepared to be released.

Requirements

  • System
    • Firebird 1.5 or higher
    • Java JRE 1.4 or higher
    • Jaybird 2.01 or higher
  • Database structure
    • Homogeneous table structures
    • No more than five key fields per table
See: Requirements

News

  • 2008-08-04 Start of the Frext project

Documentation

Reference

External links