Monday, March 6, 2017

Basic Use Cases


This represents the basic use cases that Mirada needs to implement in order to be useful.
  • Log in as admin
  • Create a user
  • Create a topic
  • Create a subscription
  • Create a message
  • Create a delivery

Log in as Admin

  • The user connects to the system with a browser
  • The system asks the user to log in
  • The user supplies their credentials
  • The system responds with the status page and gives the user a cookie

Create a User

  • The user goes to the users section of the app
  • The system presents the user with a menu of operations
  • The user indicates create a user
  • The system presents the user with the new user form
  • The user completes the form and presents it to the system
  • The system creates the new user 
  • The systems tells the other node about the new user
  • The system receives acknowledgement from the other node about the new user
  • The system reports success to the user

Create a Topic through the UI

  • The user goes to the topics section of the app
  • The system presents the user with the topics status screen
  • The user indicates they want to create a new topic
  • The system presents the user with the new topic form
  • The user completes the form and presents it to the system
  • The system create the new topic
  • The system tells the other nodes about the new topic
  • The system receives acknowledgement about the new topic from the other nodes
  • The system reports success to the user

 Create a Subscription by Sending a POST

  • The client posts a new subscription
  • The system checks the client's session
  • The client's session is valid
  • The system checks for duplicated subscriptions
  • The new subscription does not duplicate another topic
  • The system creates the new subscription 
  • The system tells the other nodes about the new subscription 
  • The system receives acknowledgement about the new subscription from the other nodes
  • The system reports success to the client

Create a Subscription through the UI

  • The user goes to the subscriptions section of the app
  • The system presents the user with the subsriptions status screen
  • The user indicates they want to create a new subscription 
  • The system presents the user with the new subscription form
  • The user completes the form and presents it to the system
  • The system checks for duplicated subscriptions
  • The new subscription does not duplicate another subscription 
  • The system creates the new subscription 
  • The system tells the other nodes about the new subscription 
  • The system receives acknowledgement about the new subscription from the other nodes
  • The system reports success to the user

Create a new Event

  • The client does an HTTP POST to a topic
  • The system checks the client's session
  • The client's session is valid.
  • The system records the data of the client's POST to a new event
  • The system tells the other nodes about the new event.
  • The system writes the new Event to the persistent store
  • The system reports success to the client

Deliver an Event

  • A new Event comes in
  • The system checks to see what subscriptions are interested
  • At least one subscription is interested
  • The system hands the Event off to the Subscription for delivery.
  • The Subscription notes the Event to persistent sore
  • The Subscription delivers the Event to the subscriber.
  • The system creates a new Delivery object
  • The system adds the Delivery to the subscription
  • The Subscription starts writing the Delivery to the persistent store
  • The system tells the other nodes about the Devlivery

No comments:

Post a Comment