Skip to content

Rapid storage price changes adversely impact UX/DX #86

@awmacpherson

Description

@awmacpherson

Strategic context

Pricing UX problem impacting cost predictability and hence viability for professional use cases.

Problem statement

Swarm's dynamic storage pricing means that users cannot reliably forecast their costs per byte over an interval greater than a single round (twelve minutes and forty seconds). Equivalently, one cannot specify a fixed TTL for a storage quota at purchase time.

If one's goal is, say, to host some dataset for 90 days, the most cost-effective way to do this on Swarm today is to purchase a short-dated quota and keep it topped up as long as one needs, paying whatever the cost is at the time. One can estimate what the cost of a 90-day quota would be and pay that amount up-front, but that has the risk of overshooting (hence wasting money) or undershooting (hence needing a top-up anyway, or expiring early).

Concretely, the current state of price updates presents two challenges:

  • The price updates are much more frequent than the intervals over which people usually want to make infrastructure spending decisions.
  • After compounding, price changes over those intervals are much larger than what developers are used to.

Suggested approach

Before we can even evaluate candidate solutions to this issue, some basic questions need to be answered:

  • Does the current system work? Assess the extent to which the system actually is "dynamically self-regulating" [BoS 3.4.5]. Evaluate the strength of the effect of price adjustments in practice on supply and demand over different timescales in Swarm. Make comments about system stability.
  • What are the costs of the current approach? Assess potential externalities of the dynamic price adjustment mechanism. Try to quantify its effect on users.
  • What properties should storage pricing have? How will we know if we've solved this problem? Formulate objectives for pricing range and stability expectations based on market research, target audience, and user feedback.
  • How much and what type of intervention are we prepared to consider? The current mechanism cannot know about the current goals of Swarm and has extremely limited capacity to respond to the prevailing market context. Sometimes, new research or shifting goals or market conditions may reveal that a different design or parameter tuning is preferable to the deployed version. To realise this improvement, intervention is needed. How often are we prepared to intervene, and what types of interventions are allowed? Even if the long-term goal is for systems to pass the "walk-away test," i.e. be zero-intervention, can we accept a "high-intervention" solution as a stop-gap solution to UX problems while we work towards a more sustainable approach?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions