Implementation Plan

The user story mappings below illustrate the implementation plan.

1. Capturing HTTP requests

The user journey Capturing HTTP Requests (green box) consists of four tasks (blue boxes):

  1. Authenticate User:
    The software engineer must be able to authenticate.

  2. Create Endpoint:
    The software engineer must be able to create an endpoint.

  3. Call Endpoint:
    The data provider must be able to call the endpoint

  4. Query Captured Requests:
    The software engineer must be able to query the requests captured by his endpoints.

Below the tasks are the sub-tasks (yellow boxes). To complete a task, its sub-tasks must be implemented.

capturing http requests story map.drawio
Figure 1. User Story Map - Capturing HTTP requests

The sub-tasks are separated in milestones using horizontal rulers:

  1. Milestone 1:
    This milestone focuses on the basic functionality of the service. With Milestone 1, we will be able to create endpoints, call these endpoints and query captured HTTP requests. The service provides this functionality over a REST API. The service captures the requests that were executed against the endpoints. However, the service does not persist these requests. Instead, the captured requests are stored in memory only. The service is not yet aware of users. There is no authentication or authorization of any kind.

  2. Milestone 2:
    This milestone focuses on the implementation of the GraphQL API. With the implementation of this milestone, we can create endpoints and query captured requests. Further, we can subscribe for captured requests.

  3. Milestone 3:
    This milestone focuses on authentication and authorization. Users have to authenticate. Endpoints get associated to the user that creates them. Users can only query captured requests for their own endpoints.

  4. Milestone 4:
    This milestone focuses on the persistence of the data. With the implementation of this milestone, the data is no longer held in memory. Instead, the data will be persisted to some data store.

  5. Milestone 5:
    This milestone focuses on the scalability of the system. When we instantiate multiple instances of the GraphQL API and REST API, the instances must handle events over a shared PubSub service.

  6. Milestone 6:
    This milestone focuses on the implementation of a user interface.