Gallium Data - The Programmable Database Proxy

With Gallium Data, you can inject your logic between your database clients and database servers to:

  • modify the requests before they reach the server

  • alter/hide/supplement the responses from the server

  • change how your system works without changing the client or the server

What is it?

Gallium Data is a programmable database proxy: it sits between database servers and database clients and provides services that are normally difficult and expensive by observing and changing the network traffic.

Gallium Data is very extensible: you can easily create your own logic and change how your clients and databases behave.

Gallium Data is highly performant: it is intended for enterprise applications with large data volumes.

Gallium Data is scalable: you can run as many instances as needed, on your servers or in the cloud.

Gallium Data works at the network level: it requires no changes to the database servers or clients, which are completely unaware of it.

Gallium Data is free -- use it to your heart's content, you don't owe us a thing.

Gallium Data supports PostgreSQL, MySQL, SQL Server, MongoDB and Redis, with support for systems using REST/JSON like Trino.

What does it do?

Gallium Data is used to change the behavior of database systems without changing the database or the database clients. This is done to:

Modify existing applications

  • change data behavior

  • augment application logic

  • enforce data restrictions

Add data access security

  • fine-grained access control

  • hide/mask sensitive data

  • monitor/control data access

Integrate

  • notify other systems of events

  • change behavior based on outside events

  • merge data from multiple sources


How does it work?

Gallium Data works at the wire protocol level: it acts as a proxy between the database server(s) and client(s) and can manipulate that traffic.

A normal database system might look like this:

Adding Gallium Data to this system makes all the traffic between client and server available to your Gallium Data logic:

The database clients and servers are completely unaffected: as far as they're concerned, nothing has changed at all. This means Gallium Data can be added to any existing system without changing the clients or the databases.

A sudden change in regulations is forcing a credit card provider to update the name "Czech Republic" to "Czechia". This could be an expensive change in all the applications, reports, etc... and changing the data in the database could break certain systems.

Gallium Data can handle this with a simple filter, in a matter of minutes, without changing either the database or all the systems accessing it.

An acquisition is forcing a company to hide certain customer records from sales reps for antitrust compliance.

Gallium Data can filter out these records, or parts of these records, and can determine its behavior either from explicit filter logic, or from the behavior of the client.

Due to exchange rate fluctuations, a suite of customer-facing applications need to display prices converted to a different currency on the fly.

A basic Gallium Data filter can fetch exchange rates from an external service and convert prices before they are received by the applications.

Without Gallium Data


With Gallium Data, you can hide or change data without changing the database or the application.

With Gallium Data