Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
86 commits
Select commit Hold shift + click to select a range
728c06c
chore: update Gradle wrapper to version 9.6.1
ammodev Jul 29, 2026
e6c1a4e
docs: add topology and API redesign spec
ammodev Jul 29, 2026
8dcdffa
docs: revise spec after architecture review
ammodev Jul 29, 2026
dac9ee5
docs: add implementation plans for the topology redesign
ammodev Jul 29, 2026
56f6f20
docs: add chunk-series bugfix and failure-during-processing tests
ammodev Jul 29, 2026
b23b1ac
test(events): validate SHARED/BROADCAST delivery and fire-and-forget …
ammodev Jul 29, 2026
8d4c818
build: add surf-circuitbreaker module with JUnit 5 test setup
ammodev Jul 29, 2026
ce5ba70
feat(circuitbreaker): add circuit state, rejection exception and test…
ammodev Jul 29, 2026
e933fdb
feat(circuitbreaker): implement three-state breaker with injectable c…
ammodev Jul 29, 2026
41f6f52
test(circuitbreaker): verify single-probe guarantee under concurrency
ammodev Jul 29, 2026
0867b41
feat(circuitbreaker): add per-target registry and reusability guard
ammodev Jul 29, 2026
ead75f8
docs(circuitbreaker): document states, usage and failure predicate
ammodev Jul 29, 2026
877dbe6
docs: mark surf-circuitbreaker plan complete
ammodev Jul 29, 2026
c33d557
test: add JUnit 5 and Testcontainers infrastructure
ammodev Jul 29, 2026
c6ac2ad
feat(topology): centralise exchange and queue naming
ammodev Jul 29, 2026
ce9810e
feat(api): split pluginName into service name and instance id
ammodev Jul 29, 2026
6b4e74a
feat(topology): declare exchanges, service, instance and reply queues
ammodev Jul 29, 2026
9cdc8ba
build: regenerate ABI dump after RabbitIdentity/RabbitTarget
ammodev Jul 29, 2026
3240626
refactor: merge client and server modules into api and core
ammodev Jul 29, 2026
c1bc195
feat(api): replace client and server APIs with a single SurfRabbitApi
ammodev Jul 29, 2026
37781fb
feat(core): merge client and server connections onto surf.rpc
ammodev Jul 29, 2026
0cc027e
test(core): verify RPC round-trip, multi-target and competing consumers
ammodev Jul 29, 2026
02e5386
refactor: isolate broker-neutral code into a shared package
ammodev Jul 29, 2026
a3244e6
docs: add migration guide from 1.6.x to SurfRabbitApi
ammodev Jul 29, 2026
9a01809
feat(events): add event base type, annotations and topic validation
ammodev Jul 29, 2026
b75f014
fix(publish): set message TTL per kind instead of globally
ammodev Jul 29, 2026
44aae7c
feat(events): discover and validate @RabbitSubscribe methods
ammodev Jul 29, 2026
d19500b
feat(events): publish and consume events, add fire-and-forget send
ammodev Jul 29, 2026
851c8a1
test(events): verify SHARED/BROADCAST delivery and fire-and-forget ac…
ammodev Jul 29, 2026
bc161e0
docs: document events, subscription modes and fire-and-forget
ammodev Jul 29, 2026
83730a5
feat(retry): add retry ladder and x-death attempt counting
ammodev Jul 29, 2026
05d8eab
feat(retry): add fanout retry tiers that return messages to their ori…
ammodev Jul 29, 2026
cc04697
feat(retry): route handler failures through the retry ladder to the DLQ
ammodev Jul 29, 2026
2414365
feat(connection): fail fast on unroutable messages via return listener
ammodev Jul 29, 2026
ee863a3
feat(rpc): guard outgoing calls with per-service circuit breakers
ammodev Jul 29, 2026
e4554bf
feat(ksp): declare the target service on @RpcService
ammodev Jul 29, 2026
d532fe0
refactor(test): migrate the test module to SurfRabbitApi
ammodev Jul 29, 2026
187731f
test(packet): cover chunked request and response round trips
ammodev Jul 29, 2026
b49665a
test(connection): cover broker restart recovery and queue overflow
ammodev Jul 29, 2026
c45bc92
fix(packet): key chunk assembly by series, not correlation id alone
ammodev Jul 29, 2026
81f1226
test(failure): cover instance and broker death during processing
ammodev Jul 29, 2026
00a8c70
docs: document failure behaviour, retries and scaling
ammodev Jul 29, 2026
96293fd
docs: design a provider-agnostic surf-eventbus
ammodev Jul 29, 2026
e51f803
docs: plan the surf-eventbus implementation in four stages
ammodev Jul 29, 2026
587b7db
docs: redesign surf-eventbus around three verbs and a database audit
ammodev Jul 31, 2026
87dd95e
docs: replan surf-eventbus in four stages against the new spec
ammodev Jul 31, 2026
75bcbad
refactor!: move every package under dev.slne.surf.eventbus
ammodev Jul 31, 2026
cd2a173
refactor!: nest modules as surf-eventbus-<area>-<layer>
ammodev Jul 31, 2026
9c78cb2
refactor!: absorb surf-circuitbreaker and the shared foundation into …
ammodev Jul 31, 2026
9ba7696
refactor!: rename rabbit env vars to SURF_EVENTBUS_RABBITMQ_* via sur…
ammodev Jul 31, 2026
d50bf22
feat!: absorb surf-redis 1.10.1 as surf-eventbus-redis
ammodev Jul 31, 2026
2ca1467
build!: one relocation base, one Netty version, fresh ABI dumps
ammodev Jul 31, 2026
f2b4b84
docs: record what stage 1 verified and what stayed unverified
ammodev Jul 31, 2026
6971e3b
feat: add the event types and topic matcher of the bus API
ammodev Jul 31, 2026
ef31ba0
feat: add @SurfSubscribe and the subscription registry
ammodev Jul 31, 2026
4ec5166
feat: add the event envelope with a JSON round trip
ammodev Jul 31, 2026
845c9a3
feat: add AuditReport, AuditKind and the logging audit sink
ammodev Jul 31, 2026
d431ba0
feat: add the event transport seam and the dispatcher
ammodev Jul 31, 2026
30744b9
feat: add @QueryService, the query transport seam and its registry
ammodev Jul 31, 2026
9a56933
feat: add SurfEventBus, its builder and the lifecycle
ammodev Jul 31, 2026
1c7200f
feat: add the Redis event transport with two channel families
ammodev Jul 31, 2026
261e70b
feat!: remove RedisEvent, @OnRedisEvent and RedisEventBus
ammodev Jul 31, 2026
a739015
feat!: remove the RabbitMQ event path
ammodev Jul 31, 2026
dee5e4c
feat: add @FireAndForget and per-target RPC proxies
ammodev Jul 31, 2026
7d9549e
feat!: remove the untyped packet API
ammodev Jul 31, 2026
a5ec011
feat: generate proxies and descriptors for @QueryService
ammodev Jul 31, 2026
260ec6a
feat!: replace RedisRequest with typed @QueryService contracts
ammodev Jul 31, 2026
2bb6e59
feat!: suspend RedisApi.connect() and give Redis the four config layers
ammodev Jul 31, 2026
8cd44a4
feat!: replace surf.dlx, surf.dlq.* and surf.unroutable with audit re…
ammodev Jul 31, 2026
1014ce4
feat: add initial RabbitMQ and Redis components for event bus
ammodev Aug 1, 2026
7640a75
docs: add the consolidation design and drop surf-eventbus-test
ammodev Aug 1, 2026
256e950
docs: add the consolidation implementation plan
ammodev Aug 1, 2026
3d5fb5d
refactor!: one opt-in marker instead of three
ammodev Aug 1, 2026
8706f53
refactor!: one contract model for @QueryService and @RpcService
ammodev Aug 1, 2026
a581bda
refactor: one KSP processor for both contract annotations
ammodev Aug 1, 2026
6c4f717
refactor!: name packages after their subject, not after old modules
ammodev Aug 1, 2026
71215f8
refactor!: one config for the whole bus, and the same shape for both …
ammodev Aug 1, 2026
37da0dd
fix: remove the workarounds instead of documenting them
ammodev Aug 1, 2026
faf1107
feat!: one instance per platform, serving both transports
ammodev Aug 1, 2026
be52755
test: add the event, query, rpc and transport-enablement suites
ammodev Aug 1, 2026
e4863ad
docs: rewrite the README and add the 2.0 rollout note
ammodev Aug 1, 2026
ad843bd
Merge branch 'version/26.1' into feat/topology-redesign
ammodev Aug 8, 2026
809f16f
fix: close the silent failures the audit found, and let CI catch the …
ammodev Aug 8, 2026
e6f9617
Merge branch 'feat/surf-event-bus' into feat/topology-redesign
ammodev Aug 8, 2026
61c199c
fix: give Redis the four config layers, and get relocated types out o…
ammodev Aug 8, 2026
8926ff8
feat(eventbus): put both transports on one EventBusTransporter
ammodev Aug 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
54 changes: 54 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: CI

on:
pull_request:
push:
branches:
- '**'
- '!version/*'
workflow_dispatch:

concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true

jobs:
check:
name: Build and test
runs-on: ubuntu-latest
timeout-minutes: 45

steps:
- uses: actions/checkout@v4

- name: Set up JDK 25
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '25'

- name: Set up Gradle
uses: gradle/actions/setup-gradle@v4
with:
cache-read-only: ${{ github.ref != 'refs/heads/version/1.21.11' }}

# ubuntu-latest ships a running Docker daemon, so the integration tag must not be
# skipped here. -PrequireIntegration turns DockerAvailableCondition from "skip" into
# "fail", which is the whole point of running these on CI: a silent skip reports green
# while verifying nothing.
- name: Verify Docker is available
run: docker info

- name: Check
run: ./gradlew check -PrequireIntegration --stacktrace --no-daemon

- name: Upload test reports
if: always()
uses: actions/upload-artifact@v4
with:
name: test-reports
path: |
**/build/reports/tests/
**/build/test-results/
retention-days: 7
if-no-files-found: ignore
2 changes: 1 addition & 1 deletion .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,5 @@ jobs:
build:
uses: SLNE-Development/surf-workflows/.github/workflows/build-publish-release-gradle.yml@master
with:
modules: "surf-rabbitmq-velocity-*-all.jar;surf-rabbitmq-paper-*-all.jar"
modules: "surf-eventbus-platform-velocity-*-all.jar;surf-eventbus-platform-paper-*-all.jar"
secrets: inherit
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
data
*.hprof

.gradle
build/
Expand Down
Loading
Loading