Yeah there's lots of ways to implement them but expiration is very common.
I guess you can technically be compelled to update your canary. But the main idea is to make it hard to compel the action that results in the canary existing. But don't ask me, like most HN users IANAL