Leading IT companies as Twitter, LinkedIn, and Walmart adopt now the Typesafe Reactive Platform . This platform paves a much more easier path to reactive web applications than all technologies before. The Reactive Manifesto describes reactive systems as:
- Responsive: The system responds in a timely manner if at all possible.
- Message Driven: Reactive Systems rely on asynchronous message-passing to establish a boundary between components that ensures loose coupling, isolation, location transparency, and provides the means to delegate errors as Messages.
- Resilient: The system stays responsive in the face of failure.
- Elastic: The system stays responsive under varying workload.
Using the programming language Scala instead of Java makes the source code of projects even much more concise.
GlueArchitecture relies on the properties responsive and message driven. In addition, it resilient and elastic applications. Thus empowers state-of-the-art Enterprise Web Applicarions.
GlueArchitecture is based on concise Scala code, implementing a simple and highly important idea to modularize your source code around "type classes" and bundle all correlated functionality. The type class may comprise:
- Logic: Logical functionality with or without CRUD (Create, Read, Update, Delete)
- Self-Representation:The type class itself "knows" how to present its logical functionality as web components
- Self-Persistence:The type class itself "knows" how to persist its objects.
- Self-Model: The type class itself "knows" how to communicate with other components, possibly to the outside world
- Self-Deploying: The type class itself "knows" how to be found via routing from the outside world
- Self-Test: The type class "knows" how to test itself
In conventional systems components modeling these functions are distributed in various directories and only code's documentation or the developers brain know about their correlations. In contrast GlueArchitecture combines these features into a single object - literally in a Scala object. Now source code documents the correlations of features.
The GlueArchitecture library provides high level abstractions in order to easily implement these type class objects and thus provides an overall clear structure of source code with all the wel- known advantages.
Software Design Philosophy
We simply cite Prof. Edsger W. Dijkstra:
If we wish to count lines of code, we should not regard them as "lines produced" but as "lines spent": the current conventional wisdom is so foolish as to book that count on the wrong side of the ledger.