Predictive Applications use Artificial Intelligence to predict certain events and then use those predictions to take action. Often they use the prediction to simulate what the world would be like if the prediction comes true. We call this simulation capability “what-if” planning. These applications can project the changing state of the world as if the prediction or what-if were true. Then they can take action in response to those predictions.
Predictive applications require two kinds of compute processes. One process is the “rear-view mirror” of the enterprise – it is always looking backwards at what has passed. It is analytical in nature, trying to find insights from experience and learn from past actions to predict the future. The other process is the “windshield” of the enterprise, meaning what is happening in the moment right in front of you as well as what might happen up ahead. These “windshield” processes make decisions in the moment and use predictions to plan certain actions in the future to achieve certain outcomes.
Until recently the “rear-view mirror” and “windshield” processes have been completely de-coupled systems.
The rear-view mirror typically has these features:
- Analysis – the system must ingest and convert raw data into usable summaries often requiring deep analytical computation pipelines on vast amounts of data
- Machine Learning – the systems continuously use machine learning algorithms to learn patterns of increasing accuracy
- Visualization – the system requires visualizations of events and plans so that users can quickly see and understand large data sets
- Distributed – the system is operating on so much data that no one computer can handle it and thus many systems must work together applying principles of parallelism and redundancy for scalability, performance, and availability
The windshield usually has these features:
- Needle-in-haystack speed – the system can find or update a single record or small range in milliseconds even in databases of petabyte scale
- What-if Planning – the system can perform scenario planning to determine the results of predicted events as well as the results of any planned reactions to those events
- Always-on – the system is not batch – it is always monitoring, notifying, reporting, and acting
- Concurrency – the system must be able to handle simultaneous human users and integrated systems that the operate independently and possibly can cause conflicting changes to data
- ACID (Atomicity, Consistency, Isolation, Durability) is a set of properties of database transactions intended to guarantee validity even in the event of errors, power failures, etc.
- Time-series data – the system needs to be able to model data that changes over time historically and projected into the future