perf: collapse short submit result callbacks

This commit is contained in:
hectorzhao
2026-08-21 10:46:27 +08:00
parent fcf6d3e6b4
commit 3c6f1beed1
5 changed files with 9 additions and 1 deletions
+5 -1
View File
@@ -65,7 +65,11 @@ func (p *connectionPool) submit(
release()
segment := submitSegmentResult(part, seq, gatewayMessageID, result)
segments = append(segments, segment)
if onSegment != nil {
// A one-part Submit is fully represented by the aggregate event below;
// publishing an identical segment event doubles API callbacks and database
// writes without adding crash-recovery evidence. Multi-part messages still
// persist every segment before advancing to the next supplier Submit.
if onSegment != nil && len(parts) > 1 {
if publishErr := onSegment(segment); publishErr != nil {
result.Segments = segments
return result, publishErr