Architecture Innovation
Fractal Computing™
An ecosystem for enterprise-scale system design, implementation and deployment.
Fundamental building block is a Fractal. Each Fractal is a small vertical software stack running in a loosely coupled process that is an independent processing entity in a distributed processing environment.
Each Fractal contains the entire application A user, or another application, interacts with a Fractal via web services. The Fractal contains all of the data and code (including all user interface widgets) for the application that the user wishes to run. Each Fractal is a smaller scale version of the overall application.
Billing example if the user is running a billing application, an individual Fractal might be responsible for on the order of about 25,000 customers and all of their associated information. If the user asks the Fractal to "show a list of all customers" the Fractal will respond with a list of 25,000 customers. If the Fractal is running in a Fractal Computing™ ecosystem where it can communicate with all of the other Fractals -- then before the Fractal sends a response back to the user, it broadcasts a message to the other Fractals asking them if they also manage any customers. The Fractal takes all of their responses and folds them into its internal response before sending the final response back to the user. The mechanisms for dissiminating requests out to other Fractals and integrating their results into a core part of Fractal Computing™.
Spreadsheet example If the user wants to build an application with a "spreadsheet" implementation style, each Fractal is responsible for a section of the spreadsheet. Often these type of spreadsheets are organized as multiple "sheets" within the overall spreadsheet. Each Fractal is responsible for it's assigned sheet in the spreadsheet. This Fractal approach to spreadsheet implementation makes is possible to have "infinite" spreadsheets that enable a simple application implementation style (spreadhseet programming) to scale to very large data sets and to utilize massive amounts of parallel processing. Each Fractal manages its iSheet™ sheet in the aggregate spreadsheet in parallel and Fractal Computing provides the programmer with Locality Optimization™ tools to insure parallelism for optimal run-time performance.
Fractal Computing™ peer-to-peer architecture. Each Fractal contains a fully functional application with all of the data and application logic for performing some task. The user experience of interacting with an individual Fractal or the entire network of Fractals is exactly the same -- the result sets are either a fraction of the total data set (when interacting with only a single Fractal) or the entire data set (when interacting with a Fractal that, in turn, is communicating with the other Fractals).
All Fractals are the same A user can attach to any Fractal in the network to initiate a request. Each Fractal is capable of communicating with all of the other Fractals and assembing a complete result for the user. A Fractal Computing architecture enables massive parallel processing, fault-tolerance, and high availability of the overall application since failover and backup logic is also embedded in each Fractal as part of the Fractal Computing ecosystem.