Audit stores
The audit store is Flamingock's dedicated system for tracking execution history, preventing duplicate executions, and ensuring safe system evolution.
What is the audit store?
The audit store tracks:
- Execution history: Which Changes ran, when, and with what outcome
- Distributed locking: Prevents concurrent executions across multiple instances
- Issue tracking: Failed or uncertain executions requiring resolution
Relationship with Target Systems
Although they serve different purposes, the Audit Store is built directly from a Target System.
This means it reuses the same underlying connection and driver (e.g., the same MongoDB client or Couchbase cluster) to store its metadata. However, it uses a separate internal handle to ensure that audit data remains logically isolated from your business data.
Unlike target systems (which your code modifies), the audit store is managed automatically by Flamingock and never modified by your Changes.
Conceptual overview: For architectural understanding, see Target systems vs audit store
Cloud audit store
The audit store is automatically provided and managed by Flamingock Cloud. No configuration needed - just focus on your changes while Flamingock handles the audit infrastructure.
Community audit store
Alternatively, you can configure your own audit store using one of the supported databases:
Registering the community audit store
- Flamingock Builder
- Spring Boot
Register the audit store with the Flamingock builder:
// Generic example - audit store configuration
public class App {
public static void main(String[] args) {
// TargetSystem
var targetSystem = new MongoDBSyncTargetSystem("mongodb-ts", mongoClient, "dbName");
// Create your audit store connection
var auditStore = MongoDBSyncAuditStore.from(targetSystem);
// Register with Flamingock
Flamingock.builder()
.setAuditStore(auditStore) // Set the audit store
.addTargetSystems(targetSystem)
.build()
.run();
}
}
For Spring Boot applications, register audit stores as beans:
@Bean
public AuditStore auditStore(MongoDBSyncTargetSystem mongoDBSyncTargetSystem) {
return MongoDBSyncAuditStore.from(mongoDBSyncTargetSystem);
}
// Flamingock Spring Boot auto-configuration will pick this up automatically
Spring Boot's auto-configuration will automatically register these audit stores with Flamingock.
For more details, see Spring Boot Integration.