├── .github └── workflows │ └── test.yml ├── README.md ├── client.go ├── client_test.go ├── cmd └── seb │ ├── app │ ├── benchmark.go │ ├── benchmark_read.go │ ├── client.go │ ├── client_get.go │ ├── read.go │ ├── root.go │ └── serve.go │ └── main.go ├── examples └── python │ ├── main.py │ └── requirements.txt ├── go.mod ├── go.sum ├── internal ├── httphandlers │ ├── addrecords.go │ ├── addrecords_test.go │ ├── getrecord.go │ ├── getrecord_test.go │ ├── getrecords.go │ ├── getrecords_test.go │ ├── gettopic.go │ ├── gettopic_test.go │ ├── mock_dependencies.go │ ├── queryparams.go │ └── routes.go ├── infrastructure │ ├── httphelpers │ │ ├── apikey.go │ │ ├── apikey_test.go │ │ ├── json.go │ │ ├── multipart.go │ │ ├── multipart_test.go │ │ ├── pprof.go │ │ └── query.go │ ├── logger │ │ ├── log.go │ │ └── logrus.go │ ├── nops │ │ └── nopcloser.go │ ├── sebbench │ │ └── benchmark.go │ └── tester │ │ ├── http.go │ │ ├── io.go │ │ ├── random.go │ │ ├── recordbatch.go │ │ ├── s3.go │ │ ├── storage.go │ │ ├── temp.go │ │ ├── topicstorage.go │ │ └── writecloser.go ├── sebbroker │ ├── blockingbatcher.go │ ├── blockingbatcher_test.go │ ├── broker.go │ ├── broker_test.go │ ├── factories.go │ ├── nullbatcher.go │ └── nullbatcher_test.go ├── sebcache │ ├── cache.go │ ├── cache_test.go │ ├── diskstorage.go │ ├── diskstorage_test.go │ ├── eviction.go │ └── memorystorage.go ├── sebrecords │ ├── batch.go │ ├── batch_test.go │ ├── records.go │ └── records_test.go └── sebtopic │ ├── diskstorage.go │ ├── diskstorage_test.go │ ├── gzip.go │ ├── gzip_test.go │ ├── memorystorage.go │ ├── memorystorage_test.go │ ├── offsetcond.go │ ├── offsetcond_test.go │ ├── s3storage.go │ ├── s3storage_test.go │ ├── topic.go │ └── topic_test.go ├── mise.toml └── seberr └── errors.go /.github/workflows/test.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/.github/workflows/test.yml -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/README.md -------------------------------------------------------------------------------- /client.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/client.go -------------------------------------------------------------------------------- /client_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/client_test.go -------------------------------------------------------------------------------- /cmd/seb/app/benchmark.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/cmd/seb/app/benchmark.go -------------------------------------------------------------------------------- /cmd/seb/app/benchmark_read.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/cmd/seb/app/benchmark_read.go -------------------------------------------------------------------------------- /cmd/seb/app/client.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/cmd/seb/app/client.go -------------------------------------------------------------------------------- /cmd/seb/app/client_get.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/cmd/seb/app/client_get.go -------------------------------------------------------------------------------- /cmd/seb/app/read.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/cmd/seb/app/read.go -------------------------------------------------------------------------------- /cmd/seb/app/root.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/cmd/seb/app/root.go -------------------------------------------------------------------------------- /cmd/seb/app/serve.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/cmd/seb/app/serve.go -------------------------------------------------------------------------------- /cmd/seb/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/cmd/seb/main.go -------------------------------------------------------------------------------- /examples/python/main.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/examples/python/main.py -------------------------------------------------------------------------------- /examples/python/requirements.txt: -------------------------------------------------------------------------------- 1 | aiohttp==3.9.4 -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/go.mod -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/go.sum -------------------------------------------------------------------------------- /internal/httphandlers/addrecords.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/httphandlers/addrecords.go -------------------------------------------------------------------------------- /internal/httphandlers/addrecords_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/httphandlers/addrecords_test.go -------------------------------------------------------------------------------- /internal/httphandlers/getrecord.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/httphandlers/getrecord.go -------------------------------------------------------------------------------- /internal/httphandlers/getrecord_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/httphandlers/getrecord_test.go -------------------------------------------------------------------------------- /internal/httphandlers/getrecords.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/httphandlers/getrecords.go -------------------------------------------------------------------------------- /internal/httphandlers/getrecords_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/httphandlers/getrecords_test.go -------------------------------------------------------------------------------- /internal/httphandlers/gettopic.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/httphandlers/gettopic.go -------------------------------------------------------------------------------- /internal/httphandlers/gettopic_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/httphandlers/gettopic_test.go -------------------------------------------------------------------------------- /internal/httphandlers/mock_dependencies.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/httphandlers/mock_dependencies.go -------------------------------------------------------------------------------- /internal/httphandlers/queryparams.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/httphandlers/queryparams.go -------------------------------------------------------------------------------- /internal/httphandlers/routes.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/httphandlers/routes.go -------------------------------------------------------------------------------- /internal/infrastructure/httphelpers/apikey.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/infrastructure/httphelpers/apikey.go -------------------------------------------------------------------------------- /internal/infrastructure/httphelpers/apikey_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/infrastructure/httphelpers/apikey_test.go -------------------------------------------------------------------------------- /internal/infrastructure/httphelpers/json.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/infrastructure/httphelpers/json.go -------------------------------------------------------------------------------- /internal/infrastructure/httphelpers/multipart.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/infrastructure/httphelpers/multipart.go -------------------------------------------------------------------------------- /internal/infrastructure/httphelpers/multipart_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/infrastructure/httphelpers/multipart_test.go -------------------------------------------------------------------------------- /internal/infrastructure/httphelpers/pprof.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/infrastructure/httphelpers/pprof.go -------------------------------------------------------------------------------- /internal/infrastructure/httphelpers/query.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/infrastructure/httphelpers/query.go -------------------------------------------------------------------------------- /internal/infrastructure/logger/log.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/infrastructure/logger/log.go -------------------------------------------------------------------------------- /internal/infrastructure/logger/logrus.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/infrastructure/logger/logrus.go -------------------------------------------------------------------------------- /internal/infrastructure/nops/nopcloser.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/infrastructure/nops/nopcloser.go -------------------------------------------------------------------------------- /internal/infrastructure/sebbench/benchmark.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/infrastructure/sebbench/benchmark.go -------------------------------------------------------------------------------- /internal/infrastructure/tester/http.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/infrastructure/tester/http.go -------------------------------------------------------------------------------- /internal/infrastructure/tester/io.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/infrastructure/tester/io.go -------------------------------------------------------------------------------- /internal/infrastructure/tester/random.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/infrastructure/tester/random.go -------------------------------------------------------------------------------- /internal/infrastructure/tester/recordbatch.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/infrastructure/tester/recordbatch.go -------------------------------------------------------------------------------- /internal/infrastructure/tester/s3.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/infrastructure/tester/s3.go -------------------------------------------------------------------------------- /internal/infrastructure/tester/storage.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/infrastructure/tester/storage.go -------------------------------------------------------------------------------- /internal/infrastructure/tester/temp.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/infrastructure/tester/temp.go -------------------------------------------------------------------------------- /internal/infrastructure/tester/topicstorage.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/infrastructure/tester/topicstorage.go -------------------------------------------------------------------------------- /internal/infrastructure/tester/writecloser.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/infrastructure/tester/writecloser.go -------------------------------------------------------------------------------- /internal/sebbroker/blockingbatcher.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/sebbroker/blockingbatcher.go -------------------------------------------------------------------------------- /internal/sebbroker/blockingbatcher_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/sebbroker/blockingbatcher_test.go -------------------------------------------------------------------------------- /internal/sebbroker/broker.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/sebbroker/broker.go -------------------------------------------------------------------------------- /internal/sebbroker/broker_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/sebbroker/broker_test.go -------------------------------------------------------------------------------- /internal/sebbroker/factories.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/sebbroker/factories.go -------------------------------------------------------------------------------- /internal/sebbroker/nullbatcher.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/sebbroker/nullbatcher.go -------------------------------------------------------------------------------- /internal/sebbroker/nullbatcher_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/sebbroker/nullbatcher_test.go -------------------------------------------------------------------------------- /internal/sebcache/cache.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/sebcache/cache.go -------------------------------------------------------------------------------- /internal/sebcache/cache_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/sebcache/cache_test.go -------------------------------------------------------------------------------- /internal/sebcache/diskstorage.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/sebcache/diskstorage.go -------------------------------------------------------------------------------- /internal/sebcache/diskstorage_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/sebcache/diskstorage_test.go -------------------------------------------------------------------------------- /internal/sebcache/eviction.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/sebcache/eviction.go -------------------------------------------------------------------------------- /internal/sebcache/memorystorage.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/sebcache/memorystorage.go -------------------------------------------------------------------------------- /internal/sebrecords/batch.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/sebrecords/batch.go -------------------------------------------------------------------------------- /internal/sebrecords/batch_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/sebrecords/batch_test.go -------------------------------------------------------------------------------- /internal/sebrecords/records.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/sebrecords/records.go -------------------------------------------------------------------------------- /internal/sebrecords/records_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/sebrecords/records_test.go -------------------------------------------------------------------------------- /internal/sebtopic/diskstorage.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/sebtopic/diskstorage.go -------------------------------------------------------------------------------- /internal/sebtopic/diskstorage_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/sebtopic/diskstorage_test.go -------------------------------------------------------------------------------- /internal/sebtopic/gzip.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/sebtopic/gzip.go -------------------------------------------------------------------------------- /internal/sebtopic/gzip_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/sebtopic/gzip_test.go -------------------------------------------------------------------------------- /internal/sebtopic/memorystorage.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/sebtopic/memorystorage.go -------------------------------------------------------------------------------- /internal/sebtopic/memorystorage_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/sebtopic/memorystorage_test.go -------------------------------------------------------------------------------- /internal/sebtopic/offsetcond.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/sebtopic/offsetcond.go -------------------------------------------------------------------------------- /internal/sebtopic/offsetcond_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/sebtopic/offsetcond_test.go -------------------------------------------------------------------------------- /internal/sebtopic/s3storage.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/sebtopic/s3storage.go -------------------------------------------------------------------------------- /internal/sebtopic/s3storage_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/sebtopic/s3storage_test.go -------------------------------------------------------------------------------- /internal/sebtopic/topic.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/sebtopic/topic.go -------------------------------------------------------------------------------- /internal/sebtopic/topic_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/internal/sebtopic/topic_test.go -------------------------------------------------------------------------------- /mise.toml: -------------------------------------------------------------------------------- 1 | [tools] 2 | go = "1.24" 3 | -------------------------------------------------------------------------------- /seberr/errors.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/micvbang/simple-event-broker/HEAD/seberr/errors.go --------------------------------------------------------------------------------