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 applicationsHistorical
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¶
[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.