# Chapter 19 Extension Exercises

Extend the starter contract after the base validator passes. Each exercise should produce a small artifact that can be reviewed without deploying external infrastructure.

| Exercise | Expected artifact | Review focus |
|---|---|---|
| Add a Feast-style feature definition | `feast_feature_definitions.py` | Confirm that entities, feature views, event timestamps, TTL, and feature services match `feature_store_contract.yml`. |
| Add online freshness rejection logic | `online_freshness_policy.md` | Explain when the model endpoint rejects, defaults, or routes a request to manual review because features are stale or missing. |
| Add a Triton batching profile | `triton_model_config.pbtxt` | Define `max_batch_size`, `dynamic_batching`, and queue delay values that respect the latency SLO. |
| Add a KServe rollout manifest | `kserve_inferenceservice.yml` | Show how production and candidate revisions would support shadow or canary traffic. |
| Add a PAI-EAS deployment note | `pai_eas_deployment_note.md` | Map autoscaling, stress testing, phased release, monitoring, and rollback controls to a managed serving workflow. |
| Add a scheduled skew test design | `scheduled_skew_test.md` | Define sampling, comparison tolerance, failure thresholds, alert owners, and promotion gates. |
