See the patterns page for implementation and usage patterns.