History and future of Tapan
Tapan v1
- Database and Reports layers
- Lot's of SQL queries, queries replica, consistency :(
- Very few
typesafety - Report results are cached, date range is a key cache
- No persistence, no zero downtime restarts
- Exposes CSVs
1
Tapan v2 (now)
- Database, View, Reports and API
- No SQL (almost), queries replica, consistency :(
- Database layer is mixed with Views :(
- Typesafety, let is crash
- Reports are built based on both Database and Views layers
- Only final Reports are cached, no intermediate caching, but filters and aggregations work (not everywhere)
- No persistence, no zero downtimes / upgrades
- No way to query from outside (ad-hoc, tableau)
1
Tapan v3
- Separate Views and Database
- Typesafety, skip and report
- Do ETL
- Cache and persist intermediate steps
- Open access to Views and Reports to outside
1
Tapan v3. Database
- Database, Views, Reports and API
- Database layer is flat and has simple types (CSV)
- No database connection, database is exported
- export-20160223-0100/platform/tasks.csv
- export-20160223-0100/analytics/ga.csv
- Export can be consistent
- Expected to be faster
- needs to be measured
Tapan v3. Views
- Views are built by other Views and Database
- Typesafety through validation
- don't crash, just log and skip
- Consistency! Because export is consistent
- Cacheable!
- Queriable/Exportable to/from Tableau, R, whatever
- Use typed data frames for aggregations and joins
Tapan v3. Reports
- Built by other Reports and Views
- Cacheable as before
- Fault-tolerant
- skip and report inconsistent things
- return last built report if it doesn't work today
- Consistent
- cross-checks should always match
- Queriable/Exportable to/from Tableau, R, whatever
Tapan v3. API
- Built by other Reports and Views
- Cacheable as before
- Fault-tolerant
-
- skip and report inconsistent things
- return last built report if it doesn't work today
- Queriable/Exportable to/from Tableau, R, whatever
Tapan v3. Deployment
- Zero-downtime upgrade/downgrade/restart
- Build views and reports, and then switch
- v7.0.0/views/companies
- v7.0.0/reports/daily_revenue
- v7.1.0/views/companies
- v7.1.0/reports/daily_revenue
- Don't upgrade if we failed to build new reports
Tapan v3. Productivity
- Don't recompute things between restarts
- Reports and views are stored locally as CSV
- grep
- diff (endpoint-compare)
- ...
- Computations can be executed remotely
- Don't spend your CPU and battery power
- Further yolo-mode enchancements
tapan
By Gleb Kanterov
tapan
- 359