AddJson
Adds JSON change detection for tracking model mutations during train execution. Serializes model state before and after each junction to detect changes.
Signature
public static TBuilder AddJson<TBuilder>(
this TBuilder effectBuilder
)
where TBuilder : TraxEffectBuilderThe generic type parameter TBuilder is inferred by the compiler — callers just write .AddJson(). This preserves the concrete builder type through chaining (e.g., TraxEffectBuilderWithData stays as TraxEffectBuilderWithData).
Parameters
None.
Returns
TBuilder — the same builder type that was passed in, for continued fluent chaining.
Example
services.AddTrax(trax => trax
.AddEffects(effects => effects
.UsePostgres(connectionString)
.AddJson()
)
);Remarks
- This is a toggleable effect — it can be enabled/disabled at runtime via the effect registry.
- Useful for auditing and debugging to see exactly what data each junction modified.
- Has a performance cost due to serialization on every junction execution. Consider disabling in performance-critical production environments.
Package
dotnet add package Trax.Effect.Provider.Json