“Clever system you have… but we have no use of it”

Posted on 07/08/11 No Comments

 

Martin Larsen Senior Developer Queue-it

By Martin Larsen, Senior Developer, Queue-it

“Clever system you have… but we have no use of it.”

This is a frequent comment we get from developers and architects when introducing  Queue-it – and I get it. Sometime in the history of the Internet we have grown accustom to having resources available anytime anywhere. This is what we design web applications for – availability and scalability. Customers expect to be able to buy the new IPhone on the release date, fans all want tickets to the Madonna concert and citizens paying taxes want to see their tax return on the day it is available. These are all good examples of usages which we know eventually will overload any well designed application.

I know what you are thinking though. These guys clearly have issues that Queue-it may help them with – but we do not have such extreme peaks and the ones we have we can handle by tweaking the database a bit. Your instincts are correct – In fact you should do what you can to make your website resist the pressure of the mobs. Regardless of whether you succeed or not I am going to give you a few reasons why you should take an extra look at Queue-it.

Design for failure

It is just not possible to foresee any failure or exception thrown by your application. Applications that may have run smoothly for years may suddenly behave differently and start failing under load pressure. Michael T. Nygard has written an excellent book called “Release It!” in which he argues that applications should be designed to resist the inevitable failures that will occur regardless of how well the application is developed. James R. Chiles (Inviting Disaster) refers to them as “cracks in the system” and draws an analogy to microscopic cracks in metal, that under stress begin to propagate – faster and faster – until it eventually breaks the metal. This is true for applications as well. One small failure or constraint in one module of the system, triggered by for example a peak load, may spread to other modules and make them unstable which may cause the web application to be unresponsive or even fail miserably. In his book Michael mentions a number of great design patterns, which helps designing for failure. What we do at Queue-it is to remove the root cause of the problem and allow your application to be functional, while giving you time correct the underlying issue.

The complexity of websites

The simple website only consisting of a few pages and a database is a dying species. Many have become applications with integrations to multiple data stores, web services, 3rd party services and legacy systems. The complexity of the design has grown with the usage of the Internet. Historically this has been contained to authentication, payment processing and similar services, but the era we are currently designing web applications for is referred to as The Semantic Web or by some Web 3.0. This calls for an increasingly complex design as we explore the possibility of combining services on the Internet into more feature rich web applications, rather than just publishing content. The ongoing digitalization of processes in the public sector is one in which there are huge savings to be collected if data is combined from a number of different services. As 3rd party or legacy services plays an increasingly bigger role in the functionality of the web application, your possibility to comply with scaling and availability demands decreases. Your web application is suddenly constrained to the scalability of the external services, which you have no or little control of. In many cases once the services exceed their maximal capacity the functionality will be unavailable for all users as the service will simply stop to respond. By placing the excess users in a virtual queue we allow the users who have gained access to the web application to enjoy the rich features that are available in modern web applications. The remaining users, that would otherwise have destroyed the experience for everyone, will be served in a fair manner once the web application gains capacity.

About Martin Larsen:
Martin is a Senior Developer at Queue-it and blogs about cloud computing, software architecture, functionality best practice and releases select Queue-it code samles as open source.

Follow Martin: LinkedInTwitter 

Post a Comment

You must be logged in to post a comment.