The concept of elasticity comes from solid mechanics and designates the mechanical property of certain materials to experience reversible deformation when they are under the action of external forces and to recover the original form if these external forces are removed. As an adjective can be used to describe those flexible materials, i.e. that can accommodate different circumstances.
The concept of elasticity or the adjective elastic can also be used to describe technologies. We will say that a technology is elastic when it:
- adapts to growth, popularity and use of systems built with it (scalability [ISO 9126]).
- can be extended to meet specific needs of niche markets.
- is identified as the most versatile for a specific activity (not necessarily the newest).
- has high visibility, mature communities, support and industry demand it.
- is modern, sophisticated and advanced but not with high risk associated.
- agrees very well with cloud computing, containerization of environments, IoT and DevOps.
- used alongside good processes delivers
- excellent results and speed to market in short cycle times.
- add, modify or remove functionalities quickly with low (or null) quality impact
The term technology elastic (at least in the sense that interests us) was introduced in an Accenture white paper called "Cloud, Agile, BI and VOIP, The Future of Elastic Technologies" in 2010, the same year of VAIRIX birth. At that time the choice to devote exclusively to Ruby on Rails was smart because, of the few existing elastic technologies, it was one of the most promising. From then, new technologies were added to the company and the stack started to be more complex. It was clear that a new set of technologies started to be interesting for our customers (and for our company), but was not until recently that we found a way to call them.
In conclusion, there are many technologies that can be described as elastic although, currently, we decided to work with the following: