All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
Added
- Added
enable_loggingoption to config section for controlling detailed logging - Added
nodes_provideroption for dynamic node discovery via MFA
Changed
- Updated documentation to reflect Spark DSL syntax (replacing old
defrpcmacro references) - Improved error handling documentation with clearer examples
Fixed
- Fixed inconsistencies between README examples and actual Spark DSL syntax
[0.9.0] - 2024-01-15
Added
- Migrated from macro-based DSL to Spark DSL for better extensibility
- Added
rpc_functionentities with support for argument names (better IDE support) - Added
private: trueoption to generate private functions (defp) - Added
new_nameoption to create function aliases - Added comprehensive architecture documentation in
guides/ARCHITECTURE.md - Added support for
:infinitytimeout
Changed
- BREAKING: Replaced
defrpcmacro withrpc_functionin Spark DSL - BREAKING: Replaced
config :my_app, :apiwithconfig do...endblocks - Improved error handling with unified
EasyRpc.Errorstruct - Enhanced node selection strategies with better documentation
Deprecated
- Old macro style (
use EasyRpc.RpcWrapper) - still works but not recommended
Removed
- Removed deprecated
DefRpcmodule (replaced by Spark DSL)
0.7.0 - 2023-12-01
Added
- Added
sleep_before_retryoption for retry delay control - Added benchmark suite for performance comparison
- Added telemetry events for RPC calls
Changed
- Improved retry logic to automatically enable error_handling
- Better error messages with context details
Fixed
- Fixed sticky node not working with round_robin strategy
- Fixed timeout not being applied correctly in some edge cases
0.6.0 - 2023-10-15
Added
- Initial release with basic RPC wrapping functionality
- Support for random, round_robin, and hash node selection
- Basic retry and timeout support
- Error handling with raise or {:ok, result} tuples