Class ClusterStoreAndForward_SQL

java.lang.Object
io.mats3.matssocket.impl.ClusterStoreAndForward_SQL
All Implemented Interfaces:
ClusterStoreAndForward

public class ClusterStoreAndForward_SQL extends Object implements ClusterStoreAndForward
An implementation of CSAF relying on a shared SQL database to store the necessary information in a cluster setting.

NOTE: This CSAF implementation expects that the database tables are in place. A tool is provided for this, using Flyway: ClusterStoreAndForward_SQL_DbMigrations.

NOTE: There is heavy reliance on the Mats' MatsFactory.ContextLocal feature whereby the current Mats StageProcessor-contextual SQL Connection is available using the MatsFactory.ContextLocal.getAttribute(Class, String...) method. This since several of the methods on this interface will be invoked within a Mats initiation or Stage process lambda, and thus participating in the transactional demarcation established there is vital to achieve the guaranteed delivery and exactly-once delivery semantics.