Choose SLI Specifications and Refine Them Into SLI Implementations For Another, More Complex User Journey.
Choose SLI Specifications and Refine Them Into SLI Implementations For Another, More Complex User Journey.
We will set SLI specifications for freshness, correctness, coverage, and throughput
of the process to update the account after the purchase as well as the response
after the billing flow is complete.
Valid Events:
Get list of SKUs on server, return list to client SKU Details to Play Store and
return details to client Billilng flow to Play Store - status code, order ID,
purchase token to client API to complete purchase to server Server Verify Purchase
Token to Play Store > Status Code back to Server Update Account on the Server >
Status Code to Client
Good Events:
Freshness - The proportion of valid data (successful status code after updating
account on server) updated x amount of seconds after request to
/api/completePurchase sent from client to server.
Correctness - Proportion of valid data (Parse JSON data from Play Store) producing
correct output. Measure correct output by using �golden input data� with known good
outputs. Compare data output to measure if it is correct/successful.
Throughput - proportion of time where the data processing rate is faster than a
threshold.
SLI for new area release - 10 purchases per second does not exceed x bytes per
second
SLI normally - 1 purchases per second does not exceed y bytes per second
SKU details request and response to the Play Store and back to client. Since the
Play Store is external and the SKU details response bypasses the server and goes
directly to the client.
A good event was an event that met SLI requirements/ A valid event was one that was
served successfully.
I chose to measure the response codes at the sever since the play store will send a
response code the the sever update the account the send a response code to the
client.
SLI: The proportion of sku id's or order id request that have a response code
0x00000000 measured at the server.
I chose the sever because during the purchase process it utilizes the
onPurchaseUpdate() which handles the response codes also at the end of user's
successful purchase the server generates a purchase token to validate success.
SLI Specification: Proportion of page requests that were served in < 200ms(Above,
�[page requests] served in <200ms� is the numerator in the SLIEquation, and �page
requests� is the denominator.)
SLI Implementations:
Proportion of page requests served in < 200ms, as measured from the 'latency'
column of the server log.
(Pros/Cons: This measurement will miss requests that fail to reach the backend.)
Proportion of home page requests served in < 200ms, as measured by probes that
execute JavaScript in a browser running in a virtual machine.
(Pros/Cons: This will catch errors when requests cannot reach our network, butmay
miss issues affecting only a subset of users.)
SLO:99% of home page requests in the past 28 days served in < 200ms.