Skip to content

[CAE-1088] feat: RESP3 notifications support #3418

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 45 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
b02eed6
feat: add general push notification system
ndyakov Jun 26, 2025
1ff0ded
feat: enforce single handler per notification type
ndyakov Jun 26, 2025
e6e2cea
feat: remove global handlers and enable push notifications by default
ndyakov Jun 26, 2025
d7fbe18
feat: fix connection health check interference with push notifications
ndyakov Jun 26, 2025
1331fb9
fix: remove unused fields and ensure push notifications work in clone…
ndyakov Jun 26, 2025
4747610
test: add comprehensive unit tests for 100% coverage
ndyakov Jun 26, 2025
70231ae
refactor: simplify push notification interface
ndyakov Jun 26, 2025
958fb1a
fix: resolve data race in PushNotificationProcessor
ndyakov Jun 26, 2025
79f6df2
remove: push-notification-demo
ndyakov Jun 26, 2025
c33b157
feat: add protected handler support and rename command to pushNotific…
ndyakov Jun 26, 2025
fdfcf94
feat: add VoidPushNotificationProcessor for disabled push notifications
ndyakov Jun 26, 2025
be9b6dd
refactor: remove unnecessary enabled field and IsEnabled/SetEnabled m…
ndyakov Jun 26, 2025
8006fab
fix: ensure push notification processor is never nil in newConn
ndyakov Jun 26, 2025
d1d4529
fix: initialize push notification processor in SentinelClient
ndyakov Jun 26, 2025
a2de263
fix: copy push notification processor to transaction baseClient
ndyakov Jun 26, 2025
ad16b21
fix: initialize push notification processor in NewFailoverClient
ndyakov Jun 27, 2025
d3f6197
feat: add GetHandler method and improve push notification API encapsu…
ndyakov Jun 27, 2025
e6c5590
feat: enable real push notification processors for SentinelClient and…
ndyakov Jun 27, 2025
03bfd9f
feat: remove GetRegistry from PushNotificationProcessorInterface for …
ndyakov Jun 27, 2025
9a7a5c8
fix: add nil reader check in ProcessPendingNotifications to prevent p…
ndyakov Jun 27, 2025
ada72ce
refactor: move push notification logic to pusnotif package
ndyakov Jun 27, 2025
91805bc
refactor: remove handlerWrapper and use separate maps in registry
ndyakov Jun 27, 2025
e31987f
Fixes tests:
ndyakov Jun 27, 2025
075b930
fix: update coverage test to expect errors for disabled push notifica…
ndyakov Jun 27, 2025
f7948b5
fix: address pr review
ndyakov Jun 27, 2025
3473c1e
fix: simplify api
ndyakov Jun 27, 2025
d820ade
test: add comprehensive test coverage for pushnotif package
ndyakov Jun 27, 2025
b6e712b
feat: add proactive push notification processing to WithReader
ndyakov Jun 27, 2025
f66518c
feat: add pub/sub message filtering to push notification processor
ndyakov Jun 27, 2025
f4ff2d6
feat: expand notification filtering to include streams, keyspace, and…
ndyakov Jun 27, 2025
cb8a4e5
feat: process push notifications before returning connections from pool
ndyakov Jul 2, 2025
c44c8b5
fix: increase peek notification name bytes
ndyakov Jul 3, 2025
47dd490
feat: enhance push notification handlers with context information
ndyakov Jul 4, 2025
1606de8
feat: implement strongly typed HandlerContext interface
ndyakov Jul 4, 2025
d530d45
feat: implement strongly typed HandlerContext with concrete types in …
ndyakov Jul 4, 2025
5972b4c
refactor: move all push notification logic to root package and remove…
ndyakov Jul 4, 2025
ec4bf57
cleanup: remove redundant internal push notification packages
ndyakov Jul 4, 2025
b4d0ff1
refactor: organize push notification code into separate files
ndyakov Jul 4, 2025
84123b1
refactor(push): completly change the package structure
ndyakov Jul 4, 2025
d780401
refactor(push): simplify handler context
ndyakov Jul 5, 2025
604c8e3
fix(tests): debug logger
ndyakov Jul 5, 2025
b23f43c
fix(peek): non-blocking peek
ndyakov Jul 5, 2025
7a0f316
fix(tests): remove bench_decode tests
ndyakov Jul 5, 2025
225c0bf
fix(tests): add global ctx in tests
ndyakov Jul 5, 2025
2681d6d
Merge branch 'master' into ndyakov/CAE-1088-resp3-notification-handlers
ndyakov Jul 5, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
316 changes: 0 additions & 316 deletions bench_decode_test.go

This file was deleted.

5 changes: 5 additions & 0 deletions internal/pool/conn.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,10 @@ func (cn *Conn) SetNetConn(netConn net.Conn) {
cn.bw.Reset(netConn)
}

func (cn *Conn) GetNetConn() net.Conn {
return cn.netConn
}

func (cn *Conn) Write(b []byte) (int, error) {
return cn.netConn.Write(b)
}
Expand All @@ -77,6 +81,7 @@ func (cn *Conn) WithReader(
return err
}
}

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

drop this line

return fn(cn.rd)
}

Expand Down
Loading
Loading