docs/project/feast-0.9-vs-feast-0.10+.md
Feast 0.10 brought about major changes to the way Feast is architected and how the software is intended to be deployed, extended, and operated.
{% hint style="success" %} Please see Upgrading from Feast 0.9 for a guide on how to upgrade to the latest Feast version. {% endhint %}
Feast contributors identified various design challenges in Feast 0.9 that made deploying, operating, extending, and maintaining it challenging. These challenges applied both to users and contributors.
Our goal is to make ML practitioners immediately productive in operationalizing data for machine learning. To that end, Feast 0.10+ made the following improvements on Feast 0.9:
| Challenges in Feast 0.9** (Before)** | Changed in Feast 0.10+ (After) |
|---|---|
| Hard to install because it was a heavy-weight system with many components requiring a lot of configuration | <ul><li>Easy to install via <code>pip install</code></li><li>Opinionated default configurations</li><li>No Helm charts necessary</li></ul> |
| Engineering support needed to deploy/operate reliably | <p></p><ul><li>Feast moves from a stack of services to a CLI/SDK</li><li>No need for Kubernetes or Spark</li><li>No long running processes or orchestrators</li><li>Leverages globally available managed services where possible</li></ul> |
| Hard to develop/debug with tightly coupled components, async operations, and hard to debug components like Spark | <ul><li>Easy to develop and debug</li><li>Modular components</li><li>Clear extension points</li><li>Fewer background operations</li><li>Faster feedback</li><li>Local mode</li></ul> |
| Inability to benefit from cloud-native technologies because of focus on reusable technologies like Kubernetes and Spark | <p><strong></strong></p><ul><li>Leverages best-in-class cloud technologies so users can enjoy scalable + powerful tech stacks without managing open source stacks themselves</li></ul> |
Where Feast 0.9 was a large stack of components that needed to be deployed to Kubernetes, Feast 0.10 is simply a lightweight SDK and CLI. It doesn’t need any long-running processes to operate. This SDK/CLI can deploy and configure your feature store to your infrastructure, and execute workflows like building training datasets or reading features from an online feature store.
| Component | Feast 0.9 | Feast 0.10, 011, 0.12+ |
|---|---|---|
| Architecture | <ul><li>Service-oriented architecture</li><li>Containers and services deployed to Kubernetes</li></ul> | <ul><li>SDK/CLI centric software</li><li>Feast is able to deploy or configure infrastructure for use as a feature store</li></ul> |
| Installation | Terraform and Helm | <ul><li>Pip to install SDK/CLI</li><li>Provider used to deploy Feast components to GCP, AWS, or other environments during <em><strong>apply</strong></em></li></ul> |
| Required infrastructure | Kubernetes, Postgres, Spark, Docker, Object Store | None |
| Batch compute | Yes (Spark based) | <ul><li>Python native (client-side) for batch data loading</li><li>Data warehouse for batch compute</li></ul> |
| Streaming support | Yes (Spark based) | Planned. Streaming jobs will be launched using apply |
| Offline store | None (can source data from any source Spark supports) | BigQuery, Snowflake (planned), Redshift, or custom implementations |
| Online store | Redis | DynamoDB, Firestore, Redis, and more planned. |
| Job Manager | Yes | No |
| Registry | gRPC service with Postgres backend | File-based registry with accompanying SDK for exploration |
| Local Mode | No | Yes |
Please see the Feast 0.9 Upgrade Guide.