Roadmap

A note about release approach

Finsemble follows a continuous delivery model. Production releases follow semantic versioning rules. The framework is developed using a lean software development life cycle. Features are prioritized but not assigned delivery dates. This roadmap is meant to provide insight into direction rather than predictability for feature availability.

In general, development efforts are prioritized according to the needs of current and prospective customers. If there is a problem that Finsemble could solve for you, reach out to us at info@chartiq.com. We welcome feedback to ensure that Finsemble is solving relevant problems.

This list covers major features. Minor features, API changes, and bug fixes are not detailed here, but are tracked internally by the development team. This roadmap will be updated periodically. For up-to-the-minute feature availability, please check our Changelog.


Planned Features

App Discovery - A network served JSON descriptor that describes a component and how to retrieve it. This architecture will allow application developers to provide their users with an "app store" model for adding apps to their toolbar in an intelligent curated manner. For instance, within the same firm, different applications might be highlighted (search or browse) for a wealth manager than a trader. This will allow firms with hundreds of applications, as well as third party providers, to deliver components from well known servers.

Extensible Toolbar - An extensible toolbar offers a new level of customizability for the Finsemble toolbar. Currently, Finsemble can be used with UI that you build from the ground up, build using our React controls, or with our fully-assembled presentation components. However, customizing our UI components effectively un-syncs them from our update schedule. The extensible toolbar will offer the ability for customized functionality while still benefiting from ChartIQ's toolbar updates.

Home/Work Workspace Intelligence - Finsemble is designed to run smoothly across multiple monitors. Home/Work Workspace Intelligence would improve Finsemble's behavior when you plug your computer into different monitor configurations. For example, if you disconnect your computer from six monitors at your desk and then connect it to a projector in a conference room, Finsemble will reorganize your windows elegantly.

Native Incorporation - Finsemble will provide a component, delivered as a WPF User Control, that allows native windows to look and behave identically to their HTML5 counterparts. Using this, native components will share a unified appearance with HTML5 components on the same screen. Additionally, built-in linker and docking functionality will allow native windows to behave just like their HTML5 equivalents. In conjunction with Finsemble’s RPC Service, Windows programmers will be able to build components that are functionally equivalent to HTML5 components and indistinguishable to end users.

Stability Monitor - In the JavaScript world, an ill-behaved component can impact an entire application. The stability monitor will send heartbeats to components to assess their state. Components that have gone into infinite loops will be detected and the user will be provided with the opportunity to quit or potentially interrupt (using debugging "pause") the component.

Tabs - Finsemble components will be able to merge windows and utilize a tab interface, similar to a browser window. Finsemble tabbing capabilities will allow for an unprecedented economy of space—this will allow users to interface with any window as a tabbed window, whether they're pre-built Finsemble components, web content, or native desktop applications!


Considered Features

Advanced Linker - Currently, Finsemble windows that are linked together share all available data with one another (provided that the components therein are able to transmit and receive this data). The Advanced Linker will allow users to manually sync specific data types—such as symbol, text, dollar amount, etc. This enables power users to build extensive workflows on the fly.

Await - APIs will give developers access to ES7 await if they prefer to avoid callback formats. await takes a promise, waits for it's value to be available, and then returns that value; the result is dramatically simpler code.

Browser Mode - This will allow Finsemble components to operate inside of a browser. A browser-based component would not require any source code changes but would potentially have more limited functionality than when running in a desktop.

Component-level Authorization - While a Finsemble application is loosely tethered (and thus poses fewer security challenges than a traditional integration), cross-domain whitelisting and blacklisting will be included as an optional, additional security layer between Finsemble components.

Finsemble Across Multiple Machines - Allow Finsemble to function as a single desktop interface across KVM switches using network busses like Kafka or Tiburon.

Rules Engine - A Rules Engine would provide UI that makes it possible to define inter-window workflows. The Rules Engine would empower Finsemble application end users (as opposed to developers and administrators) to set up their own workflow rules, directly integrating disparate components to share data and trigger behavior across component boundaries.

Stream Multiplexer - This API will allow a Finsemble application to establish a single data stream (nailed up connection such as a WebSocket) and then multiplex that data out to subscribers. A common use case is receiving a stream of "last sale" events and needing to broadcast them to more than one component. This feature will leverage the pub/sub capability of the Finsemble router.