Skip to content

1.3.0

Compare
Choose a tag to compare
@matux matux released this 15 Mar 14:09
· 38 commits to main since this release
617e182

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, and isolated 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.
  • Wrangler has been renamed to Marshaller.

New Contributors

Special thanks

Full Changelog: 1.2.0...1.3.0