Technical Architecture

Overview

The Apache ESME server is written in Scala and uses the Lift web framework to produce a browser-based user interface and also to expose a REST API. The Apache ESME architecture has been devised to meet the business requirements associated with reliability and scalability. The use of the Scala programming language and the Lift web framework on the server provides rapid development capability as well as browser push functionality ("Comet") as standard. The open server side architecture allows other messaging environments - internal (Alerts, Enterprise Services, etc.) as well as public (Twitter, external web-services, etc.) - to be consumed as messaging sources. An event-driven actions framework within Apache ESME allows users to filter their information flow as well as to forward Apache ESME messages to other systems via HTTP or email.

!Overview.jpg|border=1!

Technical architecture

Apache ESME is based on Scala and Lift and runs in most J2EE containers.

!clientdiagramjpeg.png|border=1!

Scala

Scala is a general purpose programming language designed to express common programming patterns in a concise, elegant, and type-safe way. It smoothly integrates features of object-oriented and functional languages. It is also fully interoperable with Java.

Learn more about Scala

Lift

Lift is an expressive and elegant framework for writing web applications. Lift stresses the importance of security, maintainability, scalability and performance, while allowing for high levels of developer productivity. Lift open source software licensed under an [Apache 2.0 license.|http://www.apache.org/licenses/LICENSE-2.0.html]

More Information