Revision history for Myriad
1.001 2022-11-11 09:42:07+08:00 Asia/Singapore
[Bugs fixed]
- Latest Future (and Future::XS) were failing tests due to `Future->needs_all`
being a class method, the test was incorrectly trying to use it as a plain function
(only affects the memory transport, not Redis)
1.000 2022-09-05 10:25:25+08:00 Asia/Singapore
[API changes]
- The --service_name parameter has been dropped, since it makes no sense when
used with multiple services or instances
[New features]
- Thanks to Syntax::Keyword::Equ, match() now supports `equ` as an operator
- RPC on start handle existing pending messages in stream, if not expired.
- RPC overflow protection (will not connsume more than it can process).
- Transport Redis connection pool count and wait time can be controlled through config parameters.
- Add orderedset data structure to Myriad storage.
[Bugs fixed]
- Subscriptions to create streams from source without a published event.
[Dependencies]
- Object::Pad - updated to v0.55 for various bugfixes and improvements
0.010 2021-07-22 07:14:15+00:00 UTC
[New features]
- Metrics adapter type is now configurable using --metrics_adapter.
- Metrics destination can be changed using --metrics_host and --metrics_port.
[Bugs fixed]
- RPC client to track message id for response before sending it.
- Subscription to use the right group name to acknowledge from stream.
[Dependencies]
- Object::Pad - use new ->begin_class from MOB package.
- Metrics::Any - update to v0.07 to disable metrics from certain packages.
- Metrics::Any::Adapter::Statsd - instead of DogStatsd standard.
0.009 2021-07-14 18:39:34+08:00 Asia/Kuala_Lumpur
[API Changes]
- Syntax::Keyword::Match is now imported in Myriad::Service code
- Redis: A service will not create another service's stream.
- Allow service namespaces by adding '::*' to the startup command.
[New features]
- Added incr method for storage keys.
0.008 2021-06-18 05:24:31+00:00 UTC
[API Changes]
- Breaking: RPC client will unwrap the extra 'response' level from the response.
- Myriad now has run_future like shutdown_future, to tell when the framework is running.
- Test::Myriad has a ready sub, to tell when the underlying Myriad is running.
- Batch will now throw an exception and fail if the developer didn't return arrayref.
[Bugs fixed]
- Having multiple RPC added will not block and wait each others from reading from stream.
0.007 2021-05-21 14:22:03+00:00 UTC
[Bugs fixed]
- RPC reading multiple items from stream but processing only one.
[Dependencies]
- Object::Pad - Use officially documented way to obtain metaclasses.
0.006 2021-05-07 04:16:11+00:00 UTC
[API Changes]
- `fmap_void`, `fmap_concat` and `fmap_scalar` are imported from Future::Utils into classes by default
- RPC streams are now organized differently - there will be a stream for each method
instead of one stream per service. To migrate, use the script in `bin/myriad-migrate-rpc-streams.pl`
[Bugs fixed]
- RPC reads no longer not block each other when multiple services have been loaded into one Myriad
process
0.005 2021-04-30 12:52:41+00:00 UTC
[Bugs fixed]
- small memory leak due to defer blocks not being cleared up, now uses try/finally
to avoid this
- minor issues in command line parser for services' config
- bootstrap test to be skipped if Linux::Inotify2 is not available
0.004 2021-04-28 13:27:36+08:00 Asia/Kuala_Lumpur
[API Changes]
- Helper methods from List::Util - `min`, `max` and `sum0` - plus JSON functions
from JSON::MaybeUTF8 now injected into classes by default
- `defer` keyword from Syntax::Keyword::Defer is also injected into classes by default
[Bugs fixed]
- `memory` transport was not delivering messages correctly due to a double-counting bug
- Redis stream cleanup fixed
0.003 2021-04-27 14:57:49+08:00 Asia/Kuala_Lumpur
[Bugs fixed]
- updates to latest Net::Async::Redis to resolve remaining memory leaks
- numeric configuration values were treated as booleans if the default was set to zero
0.002 2021-04-24 16:36:44+08:00 Asia/Kuala_Lumpur
[API Changes]
- The "perl" transport has been renamed to "memory", for consistency
with implementations in other languages
- Startup and shutdown calls now receive the `$myriad` instance as the
first parameter for convenience, and can be method calls (e.g. Myriad.pm
method name) instead of plain coderefs
[New features]
- Subscription to configuration changes via the Redis transport - configuration
objects still use Ryu::Observable so this behaviour should be a seamless upgrade
for existing code
[Bugs fixed]
- Batch handling had a memory leak, this version should be improved
although `await` calls inside a batch method may still exhibit
increased memory usage (we expect to address this in the next version)
0.001 2021-04-16 09:25:26+08:00 Asia/Kuala_Lumpur
Initial release.