[EPIC] Schedule programme data model without ORM/DB
The recent programme data is continuously fetched from the Steering API. To avoid any disruption in play-out (e.g. in cases where the API is not available due to network outages) the programme is also cached locally.
Engine uses a SQLAlchemy model rebuilding an interal representation of the programme and relevant schedules for play-out.
Having an ORM and relatively heavy PostgreSQL server just for this single purpose is some unnecessary overhead. Therefore lean ways of caching should be evaluated. This POC aims to:
- Cache the raw JSON endpoint data
- Rebuild the ORM using plain Python classes and
namedtuples
- Use hashing strategies to easily detect updates, where applicable