Finsemble: Roadmap

Finsemble Roadmap

A note about release approach

Finsemble follows a continuous delivery model, with production releases occurring weekly. 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. If your project depends on specific feature functionality please let us know so that we can prioritize and help you meet your goals!

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 Change Log.

Current Beta Features

Docking - A complete dockable interface will make window management significantly easier for end users. The docking algorithm will allow end users to "fuse" components together, unlock components, resize components with mouse dragging - essentially a full fledged docking interface that is on a par with the best native IDE docking.

Assimilation - The ability to incorporate native applications into a Finsemble workspace. Any type of native app can be used: .NET, Java, Flex. Once assimilated, native apps will behave like other Finsemble windows - obeying the window management, docking and workspace management rules. Developers will be able to either bundle the native app as part of the application (using OpenFin's bundling) or they can specify a well-known location for pre-installed applications on their users' desktops.

Planned Features

Symphony Chat - Symphony's upcoming "conversation component" and accompanying API will be leveraged to build a Finsemble aware Symphony chat component. This will allow developers to incorporate Symphony directly into their Finsemble applications. +

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. +

Human Interface - Components will be able to register hot key events. Finsemble will intercept those key strokes and forward them to the registered component regardless of which window is currently in focus.

Search - Components will be able to register a contextual search. The search element will appear in the header for that component. Search results will be the responsibility of the component, which will use a Search API to provide those results to the UI.

Logging - A comprehensive API for logging. Logging can be broken down into 1) production logging for debugging, 2) production logging for analytics, 3) logging for development. The API will allow developers to target each of these conditions and then monitor them through a single console, or subscribe to them through a client API. Logging will automatically integrate into OpenFin's logging infrastructure. +

Process Affinity - Developers will be able to specify which components require their own process, and to specify "component groups" which are assigned a dedicated process. This will provide fine grained control over performance and prevent errors in one component from blocking the entire application. ++

Data Sharing - A new UX capability will allow end users to transfer data between components. For instance, a user could drag and drop a stock symbol or user account between two components. A proposed data model (taxonomy) based on "receptors" and "strands" can be used to programmatically establish which components can receive which types of data. +

Wait API - A common problem is when multiple components must all wait for an event to occur outside of their process space. This API will provide an easy mechanism to coordinate external events.

Considered Features

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. +

Promises - APIs will provide a Promise interface for developers who prefer this to callbacks.

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. +++

Workspace Monitor Affinity - Currently, Workspaces span across all monitors. This new functionality would allow a user to set each monitor to run a specific workspace. +

Connectors - We are working with third parties to implement off the shelf connectors for market data, databases, entitlements, messaging and trading. Connectors provide a "back end" for standard Finsemble services, so that components can utilize those services without having to write custom code. +

Browser Mode - This would 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. The motivation would be to provide interim access to users who haven't yet gained permission from IT to install the desktop runtime. ++