Title: 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.](http://cwiki.apache.org/confluence/display/ESME/API+2.0+-+Design)
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](http://www.scala-lang.org/node/25)
#### Lift
[Lift ](http://liftweb.net/)
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
* [Apache Hudson ](apache-hudson.html)
* [Architecture Patterns ](architecture-patterns.html)
* [Database Scheme ](database-scheme.html)
* [Human- vs. Machine-based Integration ](human--vs.-machine-based-integration.html)
* [Intital Comments by Bill Fernandez ](initial-comments-by-bill-fernandez.html)