-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtasks.todo
113 lines (96 loc) · 4.14 KB
/
tasks.todo
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
@not-implemented-yet
☐ API versioning
@bugs:
✔ Verify private key parsing/encoding and public key retrieval @done (11/11/2020, 10:23:34 PM)
✔ Fix transactions retrieval for the database @done (11/11/2020, 11:05:12 PM)
✔ fix config and env retrieval specially in logic @done (11/11/2020, 11:05:09 PM)
✔ Look into how to properly construct a json string containing the transactions array @done (11/11/2020, 11:05:14 PM)
@iteration-1
☐ setup the intial app skeleton
✔ cmd for entrypoints @done (11/9/2020, 2:08:32 AM)
✔ svc for services definition @done (11/9/2020, 2:08:35 AM)
✔ rename shared/service to shared/transport @done (11/9/2020, 2:42:53 AM)
☐ redifine services/types.go
☐ each service is defining:
✔ a service interface @done (11/9/2020, 2:42:56 AM)
✔ a transport interface @done (11/9/2020, 2:42:56 AM)
✔ a few endpoints @done (11/11/2020, 11:05:38 PM)
✔ each endpoint can define transformers @done (11/11/2020, 11:05:37 PM)
✔ pkg for core functionality as packages @done (11/9/2020, 2:09:27 AM)
✔ config for configuration management @done (11/9/2020, 2:43:31 AM)
✔ add .env parsing and config management @done (11/9/2020, 2:43:31 AM)
✔ add build system or makefile @done (11/8/2020, 8:41:14 PM)
✔ add dependency management @done (11/8/2020, 8:41:17 PM)
✔ add an http server with a dummy /health endpoint @done (11/9/2020, 2:09:38 AM)
☐ add logging
✔ add system level logging @done (11/9/2020, 4:57:11 AM)
☐ add application level logging
☐ add transport level logging
☐ add application instrumentation logging (look into having promeutheus)
☐ polish http transport
✔ add endpoint encoder/decoder @done (11/11/2020, 11:05:45 PM)
✔ add server level json encoder/decoder @done (11/11/2020, 11:05:47 PM)
☐ add endpoints finalizers to be able to write proper headers
☐ introduce middlewares
☐ fix and clearly define http status codes and response
☐ fix and clearly define Http.InTransfomer for requests
☐ fix and clearly define Http.OutTransfomer for response
☐ add request contexts with timeout
✔ define an interface for storage and implement it for @done (11/9/2020, 5:36:08 PM)
✔ in-memory storage @done (11/9/2020, 5:35:44 PM)
☐ add a docker image
Note: We will try to build this service from scratch and resort to only a small subset of external tooling
@iteration-2
☐ define an interface for storage and implement it for
☐ redis storage
☐ MongoDB storage
☐ define isolated functions that can be interfaced with cmd or http or grpc
☐ function: get_daemon_pub_key
☐ function: store_transactions
☐ function: sign_transactions
☐ define input and output transformers/serializers for the functions depending on the protocol
☐ cmd transformers/serializers: text
☐ rest http transformers/serializers: json
☐ grpc transformers/serializers: protobuff
☐ test the functions in isolation with unit-tests
☐ function: get_daemon_pub_key
☐ function: store_transactions
☐ function: sign_transactions
☐ look into adding per-protocol integration tests
☐ function: get_daemon_pub_key
☐ cmd
☐ rest http
☐ grpc
☐ function: store_transactions
☐ cmd
☐ rest http
☐ grpc
☐ function: sign_transactions
☐ cmd
☐ rest http
☐ grpc
☐ look into adding per-protocol e2e tests for functionality
☐ service: pubkey
☐ cmd
☐ rest http
☐ grpc
☐ service: transactions-storage
☐ cmd
☐ rest http
☐ grpc
☐ service: transactions-signature
☐ cmd
☐ rest http
☐ grpc
☐ service: signature (all)
☐ cmd
☐ rest http
☐ grpc
@iteration-3
☐ look into providing multiple and different http providers
☐ gin
☐ GorillaMux
☐ others..
☐ add redis and mongodb to docker-compose
☐ add ci/cd using circle-ci or some-other
☐ look into deploying into heroku using containers (if it is not hasselous)