---
# System prepended metadata

title: 2021-10-11 - Sports Hands
tags: [comcast, farside, work]

---

# 2021-10-11 - Sports Hands
###### tags: `work` `comcast` `farside`

## Background

* [x] what products did Legacy serve
* [x] what products was Farside intended to serve
* [x] what products does Farside serve

## Consumers

### Distribution

|                                | current | in development | on the horizon |
|:------------------------------ |:-------:|:--------------:|:--------------:|
| DVR Auto-Extend                |  **X**  |                |                |
| ISEP                           |         |     **X**      |                |
| Merlin (`entityDS`)            |  **X**  |                |                |
| Merlin (`linearDS`)            |  **X**  |                |                |
| Peacock Sports Exp             |         |     **X**      |     **X**      |
| Sidekick                       |  **X**  |                |     **X**      |
| Sky Mobile*                    |         |                |     **X**      |
| Sky Q                          |  **X**  |     **X**      |     **X**      |
| Sky Sports Exp                 |  **X**  |     **X**      |     **X**      |
| Sky Sports Hub Max             |  **X**  |     **X**      |     **X**      |
| Sports App (~temporary)        |  **X**  |                |                |
| Sports Voice ([sunsetting][1]) |  **X**  |                |                |
| Watch With ("Sport Radar")     |         |                |     **X**      |

> (*) actual funcationality TBD

### Data Use Cases

|                      | Static | Semi-Live | Live  |     | Pull  | Push  |
|:-------------------- |:------:|:---------:|:-----:| --- |:-----:|:-----:|
| DVR Auto-Extend      |        |   **X**   |       |     |       | **X** |
| ISEP                 |        |   **X**   |       |     | **X** | **X** |
| Merlin (`entityDS`)  | **X**  |           |       |     |       | **X** |
| Merlin (`linearDS`)  | **X**  |   **X**   |       |     |       | **X** |
| Peacock Sports Exp   |        |           | **X** |     |       | **X** |
| Sidekick             | **X**  |   **X**   |       |     | **X** |       |
| Sky Mobile*          |        |   **X**   | **X** |     | **X** | **X** |
| Sky Q                | **X**  |   **X**   |       |     | **X** |       |
| Sky Sports Exp       |        |           | **X** |     |       | **X** |
| Sky Sports Hub Max   |        |           | **X** |     |       | **X** |
| Sports App           | **X**  |   **X**   |       |     | **X** | **X** |
| Sports Voice         | **X**  |   **X**   |       |     | **X** |       |
| Watch With           |        |           | **X** |     |       | **X** |

> **Static** (pull) - schedules, rosters, pre-game stats, post-game stats
> **Semi-Live** (pull, push) - scores, statuses
> **Live** (pull, push) - live game stats, plays, lineups
> (*) actual funcationality TBD


## Projects & Technology

* [ ] is our team expertise being properly leveraged
* [ ] maintenance load
* [ ] onboarding load
* [ ] scalability

### Neo4j
* [ ] why did we choose this?
* [ ] is it delivering on our expectations?
* [ ] drawbacks?
* [ ] accumulated expertise

### GraphQL
* [ ] why did we choose this?
* [ ] is it delivering on our expectations?
* [ ] drawbacks?
* [ ] accumulated expertise

### Room for Improvement (aka _Matt's Complaints_)

#### `farside-api`
* [ ] caching? hardly :shrug: - re: team expertise
* [ ] resolvers...
    * [ ] why don't we use them?
    * [ ] where can we use them?
* [ ] `listingsConnection` and `programsConnection`...
    * [ ] why do we own these?
    * [ ] why do we source these from our db

#### `graph-parser` / `graph-types-cypher`
* [ ] incoming data is built and validated at push time, which makes sense; this data can be unreliabile from push to push
* [ ] outgoing cypher statements are built and validated at push time, which doesn't make sense; they don't change from push to push

#### `clara`
* [ ] potentially too many inputs - keeping `Program`'s and `Listing`'s up to date at the hourly (for events X hours out) or daily (for events Y hours out) scale is possibly sufficient and might end up being more easily triaged
* [ ] who owns `Program`'s and `Listing`'s? why do we write them to our database?

[1]: https://etwiki.sys.comcast.net/pages/viewpage.action?spaceKey=VI&title=*WIP*+Insights+Sunset+Plan+v1