Skip to content

Greek/turnup-scheduler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TUrnUp Scheduler

Scheduler is a Go service responsible for pulling and storing TU event data in Redis KV store for fast, and accessible, data access without needing to interact with Towson's events APIs.

Why?

TUrnUp's old architecture for pulling event data was based on a single Next.JS server powered with tRPC. This architecture is fine for small scale use, but it raised various issues in terms of latency and potential rate-limit concerns.

Reason 1. Latency

Each request will fetch a list of events from both data sources, and map those events to a standardized format. This process introduced a lot of latency since we'd have to process dozens of events at once and return them to the user.

Obviously latency won't matter as much because this is simply an events aggregations site, and we're not Google. But being fast is the new and cool thing to do, so why not worry about it?

Reason 2. Ratelimiting

These events APIs are unauthenticated and anonymous requests, so it's important to assume that the APIs will behave defensively. Scheduler's goal is to minimize the amount of requests it takes to retrieve events, by storing these lists of events in our own memory cache and serving this data from cache.

About

Scheduler pulls data from Towson's events sites and stores them in a KV store, which allows other sources to access data w/o using Towson's APIs

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors