Skip to content

Connections

API Documentation

[amsdal_data.connections.base.Connectable][amsdal_data.connections.base.Connectable]

AMSDAL is modeled around two different types of data store connections:

  • State connections store a record for every object that can be updated and deleted permanently, a common approach for most applications
  • Historical connections are immutable in that they store all versions of every "object", without the ability to update any "record" in the database, allowing for complete data lineage/integretiy, time-traveling/roll-back etc.

Note

A common AMSDAL design pattern of an AMSDAL application uses a current state connection for its application along with the AMSDAL Lakehouse which is by definition an immutable historical conneciton

Connection interfaces

AMSDAL connection classes AMSDAL connection classes

Connection classes

[StateConnectionBase][amsdal_data.connections.state_base.StateConnectionBase] is abstract class that is used to implement state data connections. And [HistoricalConnectionBase][amsdal_data.connections.historical_base.HistoricalConnectionBase] is abstract class that is used to implement historical data connections.

Multiple connections

AMSDAL supports an unlimted number of connections in a single application

Built-in connections

AMSDAL currently supports the following connections:

Data store state historical
sqlite ✔ ✔
Apache Iceberg ✔
postgresql ✔

Coming soon:

Data store state historical
postgresql ✔ ✔
mysql/mariadb ✔ ✔
mongodb ✔ ✔

The number of built-in implementations will be extended in the future.