* refactor: remove unused default timeout
* feat: add persistent storage
Allows you to save the state to a file and load it upon restarting the app to restore the previous state.
* chore: upgrade to go 1.18
* use tinykv with generics
* build: add "-buildvcs=false" flag
Git is not available in golang:1.18-alpine image
Docker classic IsUp will return false when the container defines a healthcheck and is not healthy, otherwise as soon as it's started it's up.
Docker swarm will check that the number of required tasks is higher than 1, and that the number of running tasks matches the number of desired tasks.
A task is not running when it defines a healthcheck and is not healthy.