Releases: microbus-io/fabric
HTTP ingress middleware
This release modifies the interface of the middleware used by the HTTP ingress proxy core microservice. This is a breaking change.
The HTTP ingress proxy's logic was rewritten as a chain of middleware. The middleware chain can be customized, modified and extended via the Middleware() method of the HTTP ingress proxy.
Logic to identify the "best" locale was removed from the HTTP ingress proxy. String internationalization is now fully contained in connector.LoadResString.
Documentation, rand/v2, locality-awareness bug fix
This release mostly improves on the documentation which is mirrored at docs.microbus.io
It also removes custom code for generating random numbers and replaces it with the standard library's math/rand/v2.
Finally, it disables locality-awareness when addressing a microservice by its ID+hostname rather than its hostname alone.
If you're using locality-awareness, you'll want to pull this release. Otherwise, there is no material change.
Fixed failing test
Tests of v1.5.0 were timing out, possibly because of a deadlock.
Removed the defer statement when unlocking the mutex and all tests pass now.
Also set a 30s timeout for the build tests to more quickly detect such issues in the future.
Bug fixes and documentation
Fixed a potential deadlock when running tickers.
Improved documentation.
Metrics polishing
Addressed a data race in the Counter collector.
Improved documentation.
Breaking change: Counter metrics can no longer be manipulated with ObserveMetric, only with IncrementMetric.
Performance optimizations
Significant reduction in memory consumption when reading HTTP requests/responses.
- Reduced bufio.Reader buffer size to 64b
- Refactored subject reversal to be memory efficient
Optimization of mutex locking.
New benchmark:
16% faster sequential request processing (now 10460 RPS).
26% faster concurrent request processing (now 77315 RPS)
Remove Zap dependency
Replace Zap logger with standard slog
Remove Testify dependency
v1.1.0 Remove Testify dependency
Initial public release
v1.0.0 Codegen to refresh version num