An application is deployed on 5 application servers with identical performance parameters: B1 through B5. In general, three of them are sufficient to deal with the expected traffic, the remain two should be used as back-up systems in case one or more systems fail:
B1: Spare = no, Weight = 100 (33%)
B2: Spare = no, Weight = 100 (33%)
B3: Spare = no, Weight = 100 (33%)
B4: Spare = yes
B5: Spare = yes
New sessions going to this back-end group will be randomly assigned to either B1, B2 or B3, resulting in equal distribution over these three systems in the long run. Now assume that at one point, B2 fails several Health Checks and is therefore set to "Bad": It will not receive any further traffic. Airlock Gateway now looks for any back-end hosts in the same back-end group which are marked as "Spare". The first one found, in our case B4, is now assigned B2's weight (100), and receives 1/3 of the new sessions. Again, in the long run, traffic will be equally distributed over B1, B3 and B4.
Now, assume that at a later point, B4 also has problems, fails several Health Checks, and is set to "Bad": The next spare server to be found is B5, which now receives the weight 100, and therefore 1/3 of the new sessions.
Later still, B2 comes back on line. It still carries its weight (100). B5's weight will be set to 0, it still serves its existing sessions, but does not receive any new ones. Again, 1/3 of all new sessions go to B2, which eventually will carry once again 1/3 of the overall traffic load.
Once the problems on B4 are fixed, and it is back on line, it will once again serve as a spare, to be activated the next time one of the three productive systems (B1, B2 or B3) fails.