Record Processing
Mapping DSL
Dashboard
QA App
Queueing System
Description:
The queuing system controls the runtime execution of activities. Currently, Ingestion 2 uses Resque, which is a Ruby-based environment that uses Redis as a datastore and for transaction logic.
Selection criteria:
- Must allow for a batch of operations to be queued
- Must somehow report statistics about the state of play of a batch for reporting purposes
- Must allow for management of failures
- Must allow for distribution of tasks among multiple workers
Nice-to-haves:
- Choice of implementation languages for workers
- Retrying capabilities
- Broader utility outside of ingestion use cases
Technology Option | Worker Language | Strengths | Weaknesses | Opportunities | Threats |
---|---|---|---|---|---|
Airflow | Many | ||||
RQ | Python | ||||
Custom | Many | ||||
Kafka | Many | ||||
Resque | Ruby |
Developers Experience / Interests
Dev | Expert At | Good At | Familiar With | Wants to Learn |
---|---|---|---|---|
Audrey | HTML+CSS, Javascript for DOM manipulations, Ruby (in Ruby on Rails context) | Object oriented Javascript, PHP (a little rusty), Ruby, SQL | Python, Java | Python, Scala, Java |
Mark | Unix, Python(was pretty confident, now a little rusty), Javascript, PHP(formerly, doesn't like), HTML+CSS(a little rusty), Perl(rusty, been a while, is so over that) | Ruby | C, Java | Go, more Python, Scala, Java |
Michael | Java | Scala, Ruby | Python, Javascript | Python, more Scala |
Scott |