# README
Engine Design Doc
Engine is primarily a for
loop that takes inputs from a variety of sources, updates state, and makes a decision based off of that state. The rough shape of the for loop is as follows:
state := &state{}
for {
select {
// sources like local filesystem, kubernetes, ui, etc
case ev := <- fsCh:
e.handleFsEvent(ev)
case ev := <- k8sCh:
e.handleK8sEvent(ev)
}
// decide what to do: start a pipeline, stop a pipeline
actions := handle(state)
// tell subscribers what we took
updateSubscribers(actions, state.copy())
}
When state changes, and only when state changes, can we make decisions about what to do. Only after actions have been taken do we tell subscribers.
Rules
- No blocking I/O in the for loop
- No long operations in the for loop
- Actions taken in
handle
shouldn’t directly send to channels that thisfor
select
s on.
# Packages
Package analytics handles reporting of anonymized usage statistics about what features of Tilt are in use.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
# Functions
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
Subscribers that only read from the new Tilt API, and run the API server.
No description provided by the author
# Constants
No description provided by the author
# Variables
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
# Structs
No description provided by the author
CompositeBuildAndDeployer tries to run each builder in order.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
TODO(nick): maybe this should be called 'BuildEngine' or something? Upper seems like a poor and undescriptive name.
# Type aliases
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author