Request Lifecycle
This page is the quick lifecycle view. For the full interactive debug tree, open /docs/deep-dive/request-lifecycle.
1. API Entry Point
The journey begins when a client sends a POST request to /api/v1/conversation/message.
ConversationController.message
package: com.github.salilvnair.convengine.api.controllerfile: src/main/java/com/github/salilvnair/convengine/api/controller/ConversationController.java
JAVA
@PostMapping("/message")
public ConversationResponse message(@RequestBody ConversationRequest request) {
EngineContext engineContext = EngineContext.builder()
.conversationId(request.getConversationId())
.userText(request.getMessage())
.inputParams(request.getInputParams())
.build();
EngineResult result = engine.process(engineContext);
return mapToResponse(result);
}
2. Engine Processing
DefaultConversationalEngine.process
package: com.github.salilvnair.convengine.engine.providerfile: src/main/java/com/github/salilvnair/convengine/engine/provider/DefaultConversationalEngine.java
JAVA
@Override
public EngineResult process(EngineContext engineContext) {
EngineSession session = sessionFactory.open(engineContext);
session.setConversationHistory(historyProvider.lastTurns(session.getConversationId(), 10));
EnginePipeline pipeline = pipelineFactory.create();
return pipeline.execute(session);
}
3. The Pipeline (Step-by-Step)
1LoadOrCreateConversationStep
2ResetConversationStep
3PersistConversationBootstrapStep
4AuditUserInputStep
5PolicyEnforcementStep
6IntentResolutionStep
7ResetResolvedIntentStep
8FallbackIntentStateStep
9AddContainerDataStep
10McpToolStep
11SchemaExtractionStep
12AutoAdvanceStep
13RulesStep
14ResponseResolutionStep
15PersistConversationStep
16PipelineEndGuardStep
Core path vs conditional steps
PolicyEnforcementStep, ResetResolvedIntentStep, FallbackIntentStateStep, AddContainerDataStep, and McpToolStep are route-conditional and run only when config/session conditions match.
Audit Trail
Every step above emits an audit event. Use /audit/{id}/trace and then open /docs/deep-dive/request-lifecycle for the full interactive step tree and method-level trace.