Class InMemoryDecisionTraceStore

java.lang.Object
com.tnsai.context.decision.impl.InMemoryDecisionTraceStore
All Implemented Interfaces:
com.tnsai.context.decision.DecisionTraceStore

public class InMemoryDecisionTraceStore extends Object implements com.tnsai.context.decision.DecisionTraceStore
In-memory implementation of DecisionTraceStore for development and testing.

This implementation stores decision traces in memory using thread-safe ConcurrentHashMap structures. It is suitable for development, testing, and scenarios where persistence is not required.

Thread Safety

All operations are thread-safe using ConcurrentHashMap.

Usage Example


 DecisionTraceStore store = new InMemoryDecisionTraceStore();

 // Store trace
 DecisionTrace trace = DecisionTrace.builder()
     .agentId("agent-1")
     .action("APPROVE")
     .build();
 store.save(trace);

 // Retrieve
 Optional<DecisionTrace> retrieved = store.findById(trace.getTraceId());
 
  • Constructor Details

    • InMemoryDecisionTraceStore

      public InMemoryDecisionTraceStore()
  • Method Details

    • save

      public void save(com.tnsai.context.decision.DecisionTrace trace)
      Specified by:
      save in interface com.tnsai.context.decision.DecisionTraceStore
    • findById

      public Optional<com.tnsai.context.decision.DecisionTrace> findById(String traceId)
      Specified by:
      findById in interface com.tnsai.context.decision.DecisionTraceStore
    • findByAgent

      public List<com.tnsai.context.decision.DecisionTrace> findByAgent(String agentId)
      Specified by:
      findByAgent in interface com.tnsai.context.decision.DecisionTraceStore
    • findRecentByAgent

      public List<com.tnsai.context.decision.DecisionTrace> findRecentByAgent(String agentId, int limit)
      Specified by:
      findRecentByAgent in interface com.tnsai.context.decision.DecisionTraceStore
    • findByAction

      public List<com.tnsai.context.decision.DecisionTrace> findByAction(String action)
      Specified by:
      findByAction in interface com.tnsai.context.decision.DecisionTraceStore
    • findByOutcome

      public List<com.tnsai.context.decision.DecisionTrace> findByOutcome(com.tnsai.context.decision.DecisionOutcome.OutcomeStatus status)
      Specified by:
      findByOutcome in interface com.tnsai.context.decision.DecisionTraceStore
    • findByTriggerType

      public List<com.tnsai.context.decision.DecisionTrace> findByTriggerType(com.tnsai.context.decision.DecisionTrigger.TriggerType triggerType)
      Specified by:
      findByTriggerType in interface com.tnsai.context.decision.DecisionTraceStore
    • findByTimeRange

      public List<com.tnsai.context.decision.DecisionTrace> findByTimeRange(Instant start, Instant end)
      Specified by:
      findByTimeRange in interface com.tnsai.context.decision.DecisionTraceStore
    • findByConversation

      public List<com.tnsai.context.decision.DecisionTrace> findByConversation(String conversationId)
      Specified by:
      findByConversation in interface com.tnsai.context.decision.DecisionTraceStore
    • findByTag

      public List<com.tnsai.context.decision.DecisionTrace> findByTag(String tag)
      Specified by:
      findByTag in interface com.tnsai.context.decision.DecisionTraceStore
    • findChildren

      public List<com.tnsai.context.decision.DecisionTrace> findChildren(String parentTraceId)
      Specified by:
      findChildren in interface com.tnsai.context.decision.DecisionTraceStore
    • findSimilar

      public List<com.tnsai.context.decision.DecisionTrace> findSimilar(com.tnsai.context.decision.DecisionTrace trace, double threshold)
      Specified by:
      findSimilar in interface com.tnsai.context.decision.DecisionTraceStore
    • delete

      public boolean delete(String traceId)
      Specified by:
      delete in interface com.tnsai.context.decision.DecisionTraceStore
    • deleteByAgent

      public int deleteByAgent(String agentId)
      Specified by:
      deleteByAgent in interface com.tnsai.context.decision.DecisionTraceStore
    • deleteOlderThan

      public int deleteOlderThan(Instant before)
      Specified by:
      deleteOlderThan in interface com.tnsai.context.decision.DecisionTraceStore
    • count

      public int count()
      Specified by:
      count in interface com.tnsai.context.decision.DecisionTraceStore
    • countByAgent

      public int countByAgent(String agentId)
      Specified by:
      countByAgent in interface com.tnsai.context.decision.DecisionTraceStore
    • getStatistics

      public com.tnsai.context.decision.DecisionTraceStore.DecisionTraceStatistics getStatistics()
      Specified by:
      getStatistics in interface com.tnsai.context.decision.DecisionTraceStore
    • clear

      public void clear()
      Clears all traces. Useful for testing.