Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

DDBS Toolkit

Build Status Coverage Status Maven Central

DDBS Toolkit is a lightweight Java toolkit for distributed data store applications using programming abstraction.

  • Official website:
  • Supported data modules:  MySQL, PosgreSQL, Jena, SQLite
  • Supported middleware modules:  JGroups, SQLSpaces

Import modules into your project

Add the needed dependencies into your pom.xml. Example for MySQL module:


Create your data model

You need to create your data classes with the following requirements :

  • For non distributed data: your classes need to implement IEntity
  • For distributed data: your classes need to extend DistributedEntity Example for distributed Actor data
public class Actor extends DistributedEntity {
    private Integer actorId;
    private String actorName;
    private Integer filmId;
    public Integer getActorId() {
        return actorId;
    public void setActorId(Integer actorId) {
        this.actorId = actorId;
    public String getActorName() {
        return actorName;
    public void setActorName(String actorName) {
        this.actorName = actorName;
    public Integer getFilmId() {
        return filmId;
    public void setFilmId(Integer filmId) {
        this.filmId = filmId;

Instantiate your data modules

Example for MySQL Module

MySQLConnector mysqlConnector = new MySQLConnector("jdbc:mysql://localhost:3306/myDB", "user", "password");
DistributableEntityManager manager = new DistributedMySQLTableManager(mysqlConnector)

You can already start to use your data module

Example to add an actor data;
Actor anActor = new Actor();

For middleware modules: Create your receiver interface and start to listen

The receiver interface will listen to data transactions and will transmit the command into the data module. Example for JGroups module:

DistributableReceiverInterface receiver = null;
try {
    receiver = new JGroupReceiver(manager, "defaultCluster", "receiver");
} finally {
    if(receiver != null) {

For middleware modules: Create your sender interface

The sender module will send commands to your receiver interfaces. Example for JGroups module:

DistributableSenderInterface senderInterface = new JGroupSender("defaultCluster", "sender");

For middleware modules: You can already start to use your middleware module

Example to add an actor data;
Actor anActor = new Actor();

Create your own module

You first need to add the DDBS Toolkit core dependency into your pom.xml


In order to create your own data module, you will have to :

  • Implement the interface DistributableEntityManager

In order to create your own middleware module, you will have to :

  • Implement the interface DistributableSenderInterface
  • Implement the interface DistributableReceiverInterface


No releases published


No packages published