Neptune is a software system which allows application developers to easily deploy and replicate partitionable network services on a cluster of machines. Neptune provides location-transparent services to application front-ends by dynamically selecting proper storage nodes based on their workload, availability, and consistency requirements. Neptune also provides multiple levels of replica consistency to exploit application characteristics and performance tradeoffs. Using a version control scheme, Neptune can ensure that each client updates and obtains information in an incremental order with respect to one data partition. This paper describes the programming model, replica management, and availability control in Neptune and illustrates its performance using three Internet applications.