The componets of Current, somewhat user-facing in the top to implementation details below.
| Task | Stack | Module | Maturity Level | Remaining Milestones / Comments |
|---|---|---|---|---|
| Language bindings | Developer-facing | Not started | ||
| Browser-based data dictionary creation | Developer-facing | Not started | ||
| Browser-based topology definition | Developer-facing | Not started | ||
| Large Android and iPhone clients | Frontend | Alohalytics | Used in Maps.me | Diverged between Maps.me and KnowSheet. Need to converge. (*) |
| Data Dictionary Thesaurus | FE + BE | Originally Bricks/cerealize + need to rethink iOS | Mature + In progress | Dima has the design, Dima to code over the weekend. |
| iPhone Mixpanel client replacement | iPhone | In progress | In progress | Dima + Sirewire = <3. |
| Web Client | Web | - | - | Uncertain whether it's required for V1 given how well we support POST-ing data into Bricks / Sherlock. Have business need very soon though. |
| Server-side data aggregation | Backend | Alpha in SimpleServer | In progress | Dima + Sirewire = <3. Befriend with iOS-friendly data dictionary definition. |
| TailProduce: Multiple-stream-based data crunching and serving | Backend | - | Have an old design doc. | Design polished several times. Dima has good vision. Implementation will start once we close the loop and onboard several customers. |
| Stream-based data crunching and serving | Backend | Part of Sherlock | Close to V1 | Ready to launch workers on per-stream basis, waiting for TailProduce for multi-stream joins to become as easy to implement. |
| Key-Value Storage over stream-centric storage | Backend | Part of Sherlock | DesignDoc + Pilot Implementation Ready | Support polymorphic types. Add consistency policies. Add CRUD+REST. |
| Append-only stream-centric storage | Backend | Sherlock | Close to V1 | Persistence layer still on my plate -- @dkorolev |
| Browser-level dashboard | FE + BE | KnowSheet/Web | Serves TailProduce demo. | Need to rename into Dashboard. Uncertain whether it is launchable w/o WebSockets due to large memory footprint in Firefox. |
| Model optimizer | Backend | FNCAS | Ready to launch | Compile gradients, not only input functions. |
| REPL shell for Bricks | Backend | Bricks/KnowSheet-REPL | Ready to launch | |
| Backend-grade visualization | Backend | Bricks/graph | V1 launched | |
| In-memory message queue | Backend | Bricks/mq/inmemory | Ready to launch | Policy to drop vs. wait on overflow. |
| JSON and binary serialization | Backend | Bricks/cerealize | V1 launched | |
| HTTP Client | Backend | Bricks/net | V1 launched | |
| HTTP Server | Backend | Bricks/net | V1 launched |
(*) Need to a) evaluate the need in FileSystem-based storage for most users (in-memory vs. persistent log entries in case of offline), b) evaluate the need in Android coming launching in V1, c) Move back to Bricks+Sherlock wrt storage / network layer.
In rough order, to be completed by 4/19:
- iPhone Mixpanel [somewhat] drop-in replacement.
- Data dictionary thesaurus definition for iPhone + backend.
- Key-Value storage on the backend.
- Consistency policies for Key-Value storage on the backend.
- Data stream persistence ( + overflow policy for in-memory message queue).
- Data stream replication.
- Key-Value storage REST API (for CTFO & new demo).
- Proto-implementation of TailProduce logic (on one stream, but worker-based instead of listener-based).