Walkthrough - Canvases

This walkthrough guide explains how to create and use canvases in the system highlighting the following key points:
  • A Canvas is an instant isolated replication of your entire system
  • You can have as many canvases as you like
  • You can run all your processes, algorithms, reports, imports/exports, etc from within a canvas, allowing you to compare with the live system, or other canvases.
  • Canvases are built on our As-Of-Date technology allowing you to "move the line" that a canvas runs as of.
  • Canvases have promotion capabilities along you to promote changes you have made in a canvas into the live system
  • An example list of the possible use cases of canvases outside of a simple "What-if" analysis

We also have a walkthrough video that highlights some of this functionality built on top of our Alternative Asset demonstration solution:

This walkthrough covers examples of using custom Blended Transactions along with Period End recalculations, and running associated reports within isolated Canvases to compare and contrast with the main system.

Creating A Canvas Algorihtm 

The first step in creating a canvas, is simply to go to Canvases and create a new Canvas, give it any name you like and hit save.

That's it!
In the instant it takes to save, you now have a complete isolated copy of the entire system that you can use for anything you like.

Using A Canvas

From the Canvases grid you can select any Canvas, including any you've just created, and select the [Run System In Selected Canvas] command. This will perform a Refresh All and reload the application running in the selected Canvas.

You can always tell if you are running the application in the main system, or a canvas by the title of the application.

The title of the application includes a description of the service/database connection and in square brackets any canvas you are running in. For instance if we were operating in a Canvas called What If, we could see a title like this for the application:

FinancialServcies [Canvas: What If] - LemonEdge

If we were running in the main system, it would look like this:

FinancialServcies - LemonEdge

No matter what application you are using to connect, be it the windows application, console application, web site, or others, it will always display this title when you login and in most cases it will be permanently visible.

When running inside the canvas all changes you make are completely isolated to the canvas only and will not affect any other canvas or the main system.

Settings

Canvases are built on top of our Usable History technology which fully audits absolutely every change in the system. By itself this means you can run the entire system "as-of" any point in the past to compare and contrast items side-by-side in real-time or even different reports.

Combined with Canvases this provides a uniquely powerful set of tools to address a multitude of your needs. If you open a canvas you have the ability to set two extra fields:

  • Lock As Of Date
  • Is Public

By default whenever you create a canvas it is private to you. An isolated copy for you to play around with and throw away when you're done. You can however make a canvas public for other users to work with to support other use cases (see below) such as using them in workflow processes to sign-off changes.

Lock As Of Date is the setting that leverages our Usable History technology to enable you to move the date a canvas is effective from. The default value is empty, meaning the canvas is a copy of the latest main system.

A canvas doesn't actually create a "copy" of your entire system as that wouldn't be possible to be done in under a second for 100's of GB, or TB systems. Rather it uses our proprietary technology to run on top of the main system with any canvas changes layered on top. This also has the added advantage of speed and space - they can be created instantly, and they don't take up any extra space in your system.

This means that with a default canvas (Lock As Of Date set to null) you are *always* running on top of the current main system data with layered canvas changes.
So you can open a canvas look at an instrument and see it's name. If you don't change anything about the instrument you will always see the latest name. Meaning if someone changes the instrument name in the main system, you will see that new name in the canvas too.
If you change the instrument name in the canvas, then that is what you will always see in the canvas from now on. Any subsequent changes in the main system wont flow through to your canvas as you have changed that record in the canvas anyway.

Obviously depending on your use case, you may not want that. You may want the equivalent of an actual copy of the system right now. So if you create a canvas, and a user subsequently changes the name of an instrument in the main system you will never see that change in your canvas because it is showing you the system as it was before that change occurred. Just like an actual physical copy would.
Fortunately you can do that too with the Lock As Of Date setting. Simply setting this date/time stamp to the date/time you made the copy means it will only see the main system "as-of" that point in time. Any subsequent changes to the main system will not flow through into the canvas.

But of course, as the Lock As Of Date property implies, it is much more powerful than just that. It doesn't have to be a point in time copy from when you made the canvas, it can be set to run "as-of" *any* point in time in the past.
This means you can create a new canvas, and set its Lock As Of Date to Dec 31st last year, or before, and layer on any changes if you had taken actions differently, and run reports to compare that to the main system (including the main system as of a prior point in time too).
More than that you can *move* the date. You can create a canvas with a date/time of now given you an instant copy. Then, perhaps a bit later, after you're through some of your canvas modelling or analysis, you want to actually bring in some subsequent changes other teams have made in the main system too.
You don't have to start again, you can simply update the Lock As Of Date to work from a date/time after those changes.

As you can see these simple settings elevate an already revolutionary tool to an incredibly powerful solution capable of being applied to a wide variety of problems within financial services.

Promotion

Canvases track all of the changes made within them, as they are built on top of our Usable History technology. This means when you open a canvas, you can get a list of all the latest changes made within it from the Canvas Items View:

  • Who made the change
  • When the change was made
  • The type of entity that was changed
  • The label of the entity that was changed
  • The status of the change, i.e.
    • It's a new item existing in the canvas only
    • It's an item that existed in the main system and has been modified in the canvas
    • It's an item that existed in the main system and has been deleted from the canvas

This is useful for reviewing changes, and understanding what has occurred within a canvas. But importantly it also goes hand in hand with our "Promotion" functionality.

Promotion gives you the ability to select any combination of changes that you have made in the canvas, and "promote" them into the live system.
This will take the latest changes you have made for that record (and its children) and apply those same changes to the main system. For instance if you have updated the name of a user, the promotion will make the same user in the main system have the new name. 

Note: Promotions will not overwrite any conflicts with the changes you are promoting from the canvas. For instance if you change the name of User 'Bob' to 'Bobby Heart', and meanwhile in the main system someone else changes User 'Bob' to 'B. Heart' then the system will only promote your change if your change has a date greater than the change in the main system.
The system plays everything safe by default and just fails to promote records if there are merge conflicts - it doesn't attempt resolution. You can always export your change from the canvas and import into the main system as a last result.
Ensure you are completely familiar with how promotions operate, and the changes that have been made in the main system, before promoting large changes into the main system. If unsure keep backups until you are experienced with the functionality.

This functionality is protected by an additional layer of security. By default no one can promote items from a canvas into the main system. You have to assign promote permissions to a team via the Team Promotable Canvas view. Only when a user belongs to a team that has permissions to promote a canvas can they select changed items in a canvas and promote them to the main system.

The Canvas Items view also includes the ability to remove changes that have been made in a canvas. You can of course always just throw away a canvas and create a new one, but sometimes you've made a lot of changes and only want to remove a certain set of them.

This function will remove the changes you have made for this record (and its children) from the canvas.
For instance if you have updated an item in the canvas, it will remove the update and the canvas will go back to showing the value of the original record from the main system.
Effectively this resets the canvas back to how it was originally with regards to that record.

This promotion to main, and removal of changes, provide more flexibility to the Canvas functionality than just being used for modelling/analysis.
Now you have the ability to use it for a wider range of use cases that can also involve taking those tested/verified/etc changes back into the main system.

Use Cases

Canvases have an enormous range of uses above the obvious use for what-if analysis and scenario modelling.

The video above illustrates how easy it is to use canvases to analyse different scenarios. A few important points about this that it highlights include:

  • You can modify any data in the canvas
  • You can re-run any process
    • For example any configured Blended Transaction (which can run a custom process to create, or update a set of transactions against your whole system), could cancel/correct a huge range of transactions in your portfolio with one click, and safely within an isolated canvas for reporting analysis
    • Any custom algorithms you add through the API automatically benefits from canvas technology without you having to do a single thing to support it. This means any complex algorithm, such as your proprietary waterfall calculation, can be re-run under various different models in canvases without you having to change anything about your algorithms to enable it
  • Lastly, of course all reports work. Meaning once you've made your change you can easily run any set of reports within your canvas so you can analyse the results and compare them to your main system or any other isolated canvas.

This obviously enables a vast array of modelling, forecasting, and what-if scenarios, and analysis capabilities. A lot of legacy systems have various types of modules for that, but they all only allow you to change certain things (not anything in the whole system), they only allow you to run certain processes on those changes, and they only show you a few different results. They've tried to solve for it, but they never really provide the capability for analysis that you actually require with your custom processes/algorithms.

Canvases for the first time truly solve this complex area for financial services. You can now create as many different modelling scenarios as you like. For each one you can change as much of the underlying data as you like, run any algorithm to process those differences, and of-course run all your custom proprietary algorithms too.
Then you can run all your reports against that canvas and compare it to other canvas scenarios or the main system.

If canvases ended there that in itself would be revolutionary enough to change a whole set of approaches to problem areas in financial services. But they enable so much more, including the following:

  • Training:
    You can lock users into a canvas, meaning as you are onboarding new team members they can do all of their work in an isolated canvas. At the end of the day/whenever a manager can review all their work and promote it to the main system.
  • Importing:
    We have a variety of advanced data integration tools that ensure you can import any type of data with single or batch validation, from the server or live in the client, and much more.
    But ultimately you can always just simply create a canvas, perform your import, run your report/reconciliations, and if there are no problems simply promote to the live system. All solved in a completely, safe, isolated and efficient manner.
    Likewise if there are issues, you can fix them in the canvas, or throw the canvas away, fix your import files, create a new canvas and import all over again until it's right.
  • Approval:
    Some records are of vital importance, and if any value is changed you need the change to be approved first before that change is live.
    For instance you'll typically get that kind of control with legacy systems around bank account information. That's fine, but they don't provide it on all the fields you would want - for instance perhaps you need that functionality on emails, or other contact info for VIPs too. Those systems don't do it. They only provide that on certain fields as they essentially have to store two versions for the same record and they can't do that on everything.
    Canvases to the rescue again! 
    You can configure the system so users don't have permission to change those fields in the main system. They would need to create a canvas, and could change it in there.
    Then they don't have promote permission, so a manager would need to review the change first before the manager promotes it into the main system.
    There are workflow and permission configurations required to set this up, but essentially the system itself is capable of storing multiple values of the same record via canvases, that can then be approved and promoted when valid.
  • Complex, or Testing, Changes:
    Sometimes you have proprietary algorithms that take a long time to process, or data that when changed has sensitive knock-on impacts to other reports/data/etc that needs to be verified, especially within transactions/accounting.
    Depending on the complexity here users (especially new users) can sometimes be wary of making certain changes. They don't want to do the wrong thing, that takes hours to verify, only to have to back out that change again if it's wrong, and potentially spend hours re-processing back to where they were originally.
    Canvases can assist with this. A user can simply create a canvas, make the change (that may still take an hour or more to process/verify/reconcile) and then if it is wrong, they can just throw it away and be instantly back to where they were without any worry. Equally if what they did is correct they can promote that into the main system, or perform the operation again in the main system.
    Either way they now no longer have to be wary of how to use the product, they can operate changes, and even explore/test changes in a canvas with complete security that it is isolated from the main system.

And of course, much, much more. Ultimately you can use canvases for anything you want to do safely isolated from the main system.

Restrictions

Too good to be true, right? There must be a catch.

Well Canvases do have a cost associated with them.

Canvases run slightly slower than the main system itself.
This is deliberate by design.
We don't want canvases to slow down the main system, and they don't.
Because you can create as many canvases as you like instantly, with no extra space requirements, they take a little longer to load the data and augment it with the canvas changes. 

But given the convenience and capabilities, a slight performance cost associated with using them, and only while using them (not in the main system), is a small price to pay.

Canvas also prevent you making certain system changes. A canvas is an isolated copy of the system, from a data perspective.
As such you can't change anything that can cross over across Accounts.
LemonEdge can support a multi-tenanted environment in a single database. So you can't change AddIns and load in new database structure changes as those are shared across accounts, upgrade the actual database, and therefore wouldn't be isolated changes.

Other than that sensible, secure restriction, canvases are everything they appear to be. A complete, instant, isolated copy of your entire system to safely play around with.
So not too good to be true at all!