You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: design-process/6-iteration.md
+6Lines changed: 6 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,10 +16,16 @@ A very naive implementation of round tripper has been added which takes control
16
16
17
17
Inspired by traefik's internally used safe package, a helper function GoWithRecover is put in utils for error handling in cases of panic. Previous the upstream was importing discovery and the relationship was pretty messed up. Now all discovery related code is taken out of upstream package. Now upstream is a dependency of discovery and not the other way around.
18
18
19
+
## Bug in LRUCache
20
+
21
+
The cleanup function for a key was cancelled only on the whole Cache reset. But when the same key is Set again or the key is deleted, we still want to stop the cleanup goroutines as either that key no longer exists(deleted) or a new cleanup function exists for it(updated).
22
+
I feel uncomfortable having one cleanup goroutine per key. Adding this to the TODO. Maybe a single separate garbage collector go routine that will be listening on Events will be better.
23
+
19
24
## TODO
20
25
21
26
- Better error handling and context passing.
22
27
- TLS termination support
23
28
- More efficient route matching
24
29
- Plugins for most common use cases like - traffic split, auth, redirects, circuit breaking etc.
25
30
- Support for docker as service discoverer.
31
+
- Refactor LRU cache cleanup to be more efficient.
0 commit comments