Skip to content

[BE][Observability/Memory] Authenticated Conversation execution journal 및 운영 projection #648

Description

@HyungminYoon1

배경

nodease/mbased#521의 Public Chatbot은 기존 WorkflowRun/WorkflowNodeRun에 content-free status·duration·usage metadata만 남기며 별도 Conversation journal을 만들지 않는다.

Conversation Session/Turn/dispatch/context/provider 상태를 별도 운영 projection으로 조회할 필요가 생기는 시점은 nodease/mbased#649의 authenticated durable Runtime 이후다. 이 projection은 실행 정확성이나 recovery의 source of truth가 아니며 #522/320/321을 기본적으로 차단하지 않는다.

목표

Authenticated internal Conversation Memory의 domain event를 content-free execution journal과 운영 조회 projection으로 변환해 상태 진단·지연·reconciliation 관측을 제공한다.

선행 조건

구현 범위

  • Memory/Workflow domain event를 소비하는 idempotent projector
  • session/turn/dispatch/execution/provider attempt의 opaque correlation
  • 상태, timestamp, duration, retry/fencing generation과 safe reason code
  • at-least-once event 중복 제거와 out-of-order monotonic projection
  • bounded retention, pagination과 organization/operator authorization
  • raw transcript, history, prompt, completion, credential, private source identity 비저장
  • projection 장애가 Memory mutation·provider execution 성공을 rollback하지 않는 observer 경계
  • rebuild/backfill이 source domain을 변경하지 않는 read-model 계약

TDD 및 검증

  • duplicate/out-of-order/missing event와 projector retry
  • 다른 organization/session correlation 및 operator access 차단
  • raw content와 secret-like marker의 row/log/metric 비노출
  • terminal state 역행 방지와 rebuild 결과 일치
  • projection DB 장애가 execution correctness에 영향을 주지 않음
  • Public [FE/BE][Chatbot/Memory] Public Chatbot client-held 대화 기록 전달 #521 요청이 별도 Conversation journal row를 생성하지 않음

완료 기준

비범위

  • Public Conversation execution journal
  • Turn/dispatch/admission/context/provider 상태 mutation
  • provider usage ledger와 billing source of truth
  • physical purge, storage migration과 UI cutover

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions