Notifications: Milestones

Milestones

Messaging

  • Milestone A: Listener / Sender Interfaces
  • Milestone B: Support in-process via django signals
  • Milestone C: Direct exchange type with named queues
  • Milestone D: Prioritized queues
  • Milestone E: Testing scenarios

Notifications

  • Milestone 1: End-to-end prototype of architecture
    • User Story: Given that I created a Forums Post, as the author of the post, when someone responds to my post, I get an email.
    • Stub Messaging - within single process
    • Notifications Message interface
    • Composer implementation in Forums
    • Delivery: Easiest - Browser or Email?
    • (User Targeting & Presentation & Policy steps are No-Ops)
  • Milestone 2: Scaling User Targeting (depends on multi-process)
    • User Story: As a developer/devOps, when notifications messages are sent through the pipeline, I can track each message with the amount of time each message spends in each pipeline step.
      • Update History table in the message object at each step
      • Logging
    • User Story: As a follower of the post, when someone responds to the post, I get an email.
    • User Targeting step
    • Messaging - across multiple processes
    • Scaling: Demonstrate horizontal scaling - linearly with parallelism
  • Milestone 3: Template Rendering
    • User Story: As a follower of the post, when someone responds to the post, I get an email with the author's name and a deep link to the post.
    • Template repository with the Composer
    • Presentation Step - Template resolution
  • Milestone 4: Message Localization and Personalization
    • User Story: As a post follower with French language settings, when someone responds to the post, I get an email in French with my name in the greeting.
    • Scaling: per-user localization and personlization of the message
  • Milestone 5: User and Platform Policy
    • User Story: As a follower of the post, when someone responds to the post, I do not get an email if I have disabled notifications, but others may.
  • Milestone 10: Notifications Tray - in-app desktop

Later

  • Read/Unread
  • Aggregation
  • TTL, Priority, Durability