Organization structure

Basic layout

Firebird Butler is an extensive division with number of parts and projects divided into several layers and pillars.

The layers are:

  1. Specifications and other documents

    This is the shared foundation of the Butler projects. This document collection (in which this text is included) contains a description of the division, its parts and how they fit in with each other, the specification of the developer platform, the used communication protocols, and the recommended practices for their implementation and use. It also includes the specification of selected services implemented within the Butler’s projects, and other related documentation.

    All these documents (provided under CC-BY-SA-4.0 license) reside in the Butler repository on GitHub. They are also accessible in HTML and other formats at readthedocs.

    The main communication channel for discussion of specifications, implementation strategies, and other issues related to the whole division or its basics is the firebird-butler forum on googlegroups.

    Tip

    There is also a low-traffic, read-only annoucement list for delivery of information about new releases and other important events related to the project.

  2. Implementations of the Butler platform

    Different implementations of the development platform represent the individual pillars of the division. These pillars are typically formed around a particular programming language or development environment. Currently, due to limited resources, the division has only three pillars:

    1. Saturnin : a reference implementation in Python

    2. ButlerJavaSDK : implementation in Java

    3. Butler SDK for Free Pascal : implementation in Free Pascal

    We hope the Butler’s potential will attract other developers to help us deliver implementations also for Delphi, C# and other environments.

    Each SDK is a sub-project with its own repositories, communication channels, developers and documentation.

  3. Implementations of Butler Services

    Implementation of Butler services is structured into stand-alone sub-projects because it is typically defined by the SDK used and the specific focus. Any such project can define its own standards and specifications beyond the basic specifications for Butler Services. The basic specifications then provide the necessary minimum level of interoperability between Services implemented by different sub-projects.

    Within the Firebird Butler project, only one sub-project of this type is currently being developed - a Firebird Butler implementation in Python called Saturnin Core. Its aim is to provide a standard solution for management of Firebird deployments of any size, structure and complexity with an emphasis on large corporate installations.

    However, other such projects with different focus and features can be developed both within and outside the Firebird Butler project.

  4. Distribution packages

    Distribution bundles are the final product designed for common users. Like Linux distributions, they can include and combine various results from different Butler implementation projects to achieve different goals.

    Since the Firebird Butler project is only in its beginnings, no distributions are yet available.

Saturnin + Saturnin SDK

The purpose of the Saturnin is to provide Firebird Butler platform anf reference implementation of Firebird Butler specifications in Python, while Saturnin SDK sub-project provides set of development tools to create Firebird Butler services while providing .

Saturnin

Lead developer

Pavel Císař

GitHub home repository

FirebirdSQL / saturnin

Documentation and other information sources

Saturnin Documentation

Main communication channel

saturnin forum at googlegroups

Saturnin SDK

Lead developer

Pavel Císař

GitHub home repository

FirebirdSQL / saturnin-sdk

Documentation and other information sources

Saturnin SDK Documentation

Main communication channel

saturnin-sdk forum at googlegroups

ButlerJavaSDK

The purpose of the ButlerJava SDK sub-project is to provide basic tools for Java to create Firebird Butler services in accordance to Firebird Butler specifications.

Lead developer

Sergey Nikitin

GitHub home repository

FirebirdSQL / ButlerJavaSDK

Documentation and other information sources

readthedocs

Main communication channel

butlerj-sdk forum at googlegroups

Butler SDK for Free Pascal

The purpose of the Butler SDK for Free Pascal sub-project is to provide basic tools for Free Pascal and Lazarus to create Firebird Butler services in accordance to Firebird Butler specifications.

Lead developer

Paul Reeves

GitHub home repository

FirebirdSQL / butler-fpc-sdk

Documentation and other information sources

readthedocs

Main communication channel

butler-fpc-sdk forum at googlegroups

Saturnin Core

The purpose of the Saturnin Core sub-project is to provide core set of Butler services for Saturnin platform, that could be used for management of Firebird deployments of any size, structure and complexity with an emphasis on large corporate installations.

Saturnin Core

Lead developer

Pavel Císař

GitHub home repository

FirebirdSQL / saturnin-core

Documentation and other information sources

Saturnin-Core Documentation

Main communication channel

firebird-saturnin forum at googlegroups