If you just want to dive into the documentation, you can review that here. If you want the story behind the rewrite, let’s talk about some of the challenges we wanted to solve.
- Support for additional frameworks
- Have a little more code separation
- Provide a better developer experience
We’ll talk about each one of these points in a little more detail. But first, let’s dive into the architecture a bit.
Everything starts with Exceptionless JS Core. From there, we extend into specific environment implementations. The Node.js environment has different requirements than tha browser environment. Framework-specific environments like React and Vue have different requirements than the browser environment. By starting with the Core JS implementation, we can extend in any direction to any framework.
Speaking of frameworks…
Support for additional frameworks #
While Exceptionless continued to work well for most use cases, it was clear we needed an updated client to support the exploding ecosystem. React Native was one of our specific targets because Exceptionless’s JS client flat-out couldn’t work in React Native. But while we were at it, we wanted to make Vue.js support easier, add some native React functionality, and more. What we arrived at is a more robust client with individual sub-clients for various frameworks.
ECMAScript has progressed a lot in the last ten years. It was clear that we would need to re-write our client to keep up. With our new implementation, it will be much easier to stay on top of new features and experimental features.
Have a little more code separation #
This is not a question of monorepo or not. Instead, we recognized that we were trying to cover browser code and server code all in one package. This made things difficult, not to mention we didn’t yet have support for specific frameworks (besides Angular 1.0).
Provide a better developer experience #
Developers are at Exceptionless’s core. We are developers. We are part of the open-source community. Everything we build should make life easier for developers.