-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathroadmap.html
More file actions
73 lines (56 loc) · 2.87 KB
/
Copy pathroadmap.html
File metadata and controls
73 lines (56 loc) · 2.87 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
---
layout: default
---
<div class="content">
<h1>Roadmap</h1>
<ul>
<li><strike>Improve typing for event handlers</strike><i>DONE</i>
<li>Improve documentation <i>(2 hours)</i>
<ul>
<li>Client-side security explanation
<li>Explanation of broadcast vs. local events
<li>Explain how to write handlers efficiently/easily
<li>Clearly document which operations will <i>not</i> trigger Tyranid events
</ul>
<li>TODO: show an example of imperative vs. event handler / i.e. around org-creation / project/plans transition around participants
<li>Increase context inside event handlers
<ul>
<li>access to current user
<ul>
<li>option 1 -- investigate continuation-local-storage / update <a href="local"><u>Tyr.local</u></a>
<br>(it used to be that this was not well-supported, but later versions of node.js added support
for async hooks which might / might not make this a performant solution now)<br><i>(4 hours to investigate feasibility + ? hours
to implement)</i>
<li>option 2 -- ensure people are specifying auth on all tyranid requests
</ul>
<li>access to what was changed / <a href="document#$orig"><u>$orig</u></a> support<br>
We already support this on historical collections, one solution would be
to enable this automatically if
<ol>
<li>the collection is historical <i>or</i>
<li>the collection has event handlers <i>(4 hours)</i>.
</ol>
</ul>
<li>Client-side cache invalidation ... ability to specify force querying a fresh copy in certain circumstances
<li>Multiple Event Handlers
<ul>
<li>Improve understanding how errors handled/propagated
<li>Event transactions ... run all the handlers in a transaction when we go to mongo 4.0 <i>(2 days)</i>
<li>Event sequencing -- monad, programmable-semicolon, sequencing
</ul>
<li>Create Tyranid developer's document for people who would like to contribute to Tyranid
<br>investigate https://help.github.com/en/articles/setting-guidelines-for-repository-contributors
<li>Client-side Projection Management <i>(3 days)</i><br>
Includes determining when a cache is missing needed fields.
<li>devtools for Tyranid
<li>Unify projection and population syntax
<li>Use MongoDB 3.6+ aggregations to perform queries that have population in one database operation. This would
<ol>
<li>reduce the number of queries but also, more importantly, would
<li>allow you to do searching/filtering on populated values when doing a paged query.
</ol>
<li>First class support for node.js mongodb driver bulk operations
<li><a href="services#roadmap">Services Roadmap</a>
<li><a href="tyreant#roadmap">Tyreant Roadmap</a>
</ul>
</div>