Digest stores sets of messages for a given user (id).
DigestEdit is a mutable Digest.
The DigestService collects sets of messages for different users, and sends them out periodically.
EmailService is an interface to sending emails.