1.3.0
What's Changed
- Add Rollbar branding to the Readme by @paulserraino in #88
- Event refactor by @matux in #94
- Fixes an Android native unit test and Android example issue by @matux in #96
- Prepare Rollbar Flutter SDK for 1.3.0 release. by @matux in #97
Event refactor
This refactor addresses multiple deficiencies with how we transfer information from our front-end API to our internal Notifier process.
This refactor solves multiple bugs, and presents a scalable mechanism to add new functionality in a composable way with the least amount of changes due to a very modularized scheme.
What changed:
- The Notifier used to represent a sandboxed/isolated boundary between the SDK's innards and its API. Now the Notifier is just another switchable self-contained module just like the Transformer, Sender and Marshaller.
- A new Sandbox module that represents the aforementioned isolated boundary which offers two flavors:
async
useful for unit testing, andisolated
which leverages Dart's Isolates.- We keep the same level of security by sandboxing our memory, and full thread-enabled concurrency.
- This helps remove business logic from the Notifier, which used to handle both the process pipeline and the isolation.
- The way the API forwards messages to the Notifier is through
Event
instances, which is a type-safe way of encoding action and the data associated with such action. This event is dispatched to the Sandbox and the Sandbox sends it to the Isolate stream, and then it's given to the Notifier. - The Notifier encodes the pipeline that processes these Events.
- There are two types of Events:
- Events that modify context (the SDK's state): In this case, the Notifier acts as a simple Reducer that modifies its internal state given the Event's data.
- Events that forward data to Rollbar's API: In this case, the event is put through the Marshalling pipeline, the data is transformed if necessary, persisted and then sent.
- There are two types of Events:
- Wrangler has been renamed to Marshaller.
New Contributors
- @paulserraino made their first contribution in #88
Special thanks
- To @rfuerst87 for reporting #91.
- To @TRemigi for reporting #93.
Full Changelog: 1.2.0...1.3.0