make TTL work

fixes #1068 

It lacks tests, but is able to work well.
i wanna get some feedback for this implementation, and I am adding tests for it now.
it needs ~500 us for `sync` to complete.
`sync` generates a random id, which takes that much long time.