Business Maps Canvas

Canvas is Business Map's visual business designer, it gives you a drag and drop canvas style app pre-installed with visual symbols representing the Business Maps framework

High Level Architecture

Canvas is a nuxt app, it leverages Nuxt Layers to divide it's underlying functionality into different nuxt apps that can be developed and ran independently, which include:

  • Identity: Nuxt app, made to be extended by other Nuxt apps. Provides authentication, authorization, and identity related functionality, including managing cryptographic keys used to sign requests made by humans and machines, session management, data policies, and account management.

  • Ontology: Provides the tools and processes to build, distribute, and iterate over an ontology. As a nuxt app, when provided with an ontology, provides the functionality to serve the ontology, in both human and machine readable interfaces.

  • Data: Nuxt app, made to be extended by the Canvas Nuxt app specifically. Provides a layer that manages sycnronization between in-memory and remote data stores. Data is provided in the form of pinia stores, and queries and transactions are handled in a CQRS fashion. Adapted specifically as an adapter between Fluree's JSON-LD blockchain database, the Business Maps framework, and the Canvas app

  • Design: Nuxt app, can be run standalone to explore design system, or be extended by other Nuxt apps to act as a component library

Despite there being data access protocols enforced at the database layer, each layer requires its own ledger, this makes the system more robust by isolating concerns. This is makes it so we can use physically separate machines to store private keys which are only meant to be read by an Identity server, than we do to store design tokens which are meant to be read by anyone. This also means we can scale different sides of the business as needed.

This architecture gives Business Maps the option to run as a modular monolith, with a fluree server and nuxt app running in a container with durable storage, or as a number of specialized apps each with their own scaling configuration.

On this page