The TRC canvassing app is sitting in front of a powerful general-purpose service for sharing tabular data files like CSVs.
- Integrations – a means to two-way sync that tabular data with external data sources (like NationBuilder, Salesforce, Google sheets, dropbox, etc)
- User-management – you can share out a sheet with users, track per-user activity, and revoke permissions.
- Source Control – TRC provides both branching and full history tracking. Branching means you can create a “child” sheet that has a subset view of the “parent” sheet. Full history tracking means you can track every change.
- A compute engine – TRC has a general compute fabric for process joins, merges, and aggregations on your data.
Sandbox and Isolation
Each campaign gets its own isolated view of the data, which we call a “sandbox”. This means that two candidates can running against each other for the same position against each other in a primary,
Sandboxes can then be further partitioned among your volunteers.
For example, R1…R5 are individual records. User U1 is synchronizing the data with some external data source, such as NationBuilder or Salesforce. S1 refers to U1’s sandbox.
U1 then shares out subsets of the sheet with volunteers on the campaign. This creates a new sandbox S2 for User U2, which has access to rows R3,R4. And another new sandbox, S3, for users U5,U6,U7 which get access to R1 and R2. Since U5,U6, U7 are in the same sandbox (S3), they can see each other’s changes.
The system is a distributed hierarchy, so any operation U1 can do in S1; U2 can do in S2. U2 is fully empowered within their sandbox! So U2 can divide their own sandbox and create a new sandbox for U3 and U4 to each edit R4. Since U3 and U4 each have their own sandbox (in contrast to U5,U6,U7 who all share a sandbox), U3 and U4 can edit the same record without conflicting with each other. Their parent (U2) can then resolve any conflict.
This has several benefits:
- It allows multiple candidates to run against each other in a primary. They each get their own sandbox.
- Within a sandbox, it ensures that your data is never overwritten.
- It allows an untrusted people to submit data to your campaign. The data is just quarantined in its own sandbox and not integrated until proven safe.
- The full audit log allows purging bad data even after an integration.