The Elastic Path Commerce Engine is an enterprise-grade ecommerce platform built on a foundation of the industry’s best open source technologies and open standards. Elastic Path also provides its customers with full access to source code and exceptional documentation, empowering developers and systems integrators to modify features, extend its capabilities, and meet the most demanding custom requirements.
Spring Container Framework
The Spring container framework is the major underlying architectural framework in Elastic Path and is also responsible for the majority of system-level services including object life cycle management, transactions, security, and job scheduling via the inclusion of several Spring modules. Spring's dependency injection and inversion of control allow non-invasive extension of the supplied platform. This makes it possible to customize the implementation of our classes without changing the code that invokes that class (provided it adheres to the same interface). This loose coupling provides a tremendous level of flexibility and simplicity to application developers looking to customize Elastic Path. Read more about Spring.
Spring MVC Framework
The Spring MVC (model-view-controller) framework is used to logically separate the presentation layer from the underlying implementation. Spring MVC makes every piece of logic and functionality highly configurable and integrates easily with most popular web view technologies including Velocity. Read more about Spring.
Spring Security provides comprehensive authentication and authorization capabilities in a mature and stable package designed specifically for enterprise applications built on Spring. Spring Security features easy configure and a pluggable architecture with support for a wide variety of industry-standard authorization service integrations. Read more about Spring Security.
Apache OpenJPA is a JPA (Java Persistence Architecture) 1.0 compliant persistence layer that features lightweight and transparent persistence of Java entities and database independence. OpenJPA combines the best features from a variety of competing persistence options, such as ORM, ODB, EJB2, and JDO, including a rich set of options for performance tuning, including a pluggable L2 cache and fetchplans. Read more about Apache OpenJPA.
Ehcache is an open source, standards-based cache used in a wide array of applications to boost performance, offload the database, and simplify scalability. Elastic Path uses Ehcache for application level caching of frequently requested objects in the storefront such as products and SKU’s. Read more about Ehcache.
SOLR Enterprise Search Server
Apache SOLR is a popular enterprise search platform based on the Apache Lucene project. SOLR is prevalent amongst cutting edge technology companies and large enterprises due to its reputation for performance and functionality, with rich support for full-text search, faceted search, dynamic clustering, distributed search and scalability. SOLR is used within Elastic Path for all in-site and Commerce Manager search functions. The Elastic Path platform also uses SOLR extensively to drive filtered search and browse capabilities. Read more about Solr.
Drools is a business rule management system (BRMS) that uses a version of the Rete algorithm to implement rule conditions and execute their actions. Drools is used within Elastic Path to evaluate shopping cart promotions (e.g., free shipping or ‘buy one get one free’). Drools determines which promotion rules should be executed based on conditions defined by the marketing users and handles conflict resolution when there are multiple promotion rules that apply to the same items in the shopping cart. Read more about Drools.
Groovy is an object-oriented programming language for the Java platform. It is a dynamic language with features similar to those of Python, Ruby, Perl, and Smalltalk. Elastic Path uses Groovy as a scripting language to control the display of dynamic content in the storefront. Groovy allows developers to quickly develop new content wrappers (for displaying content types e.g., images from an external CMS) simply by creating XML configuration files. Read more about Groovy.
Eclipse Rich Client Platform
The Eclipse Rich Client Platform (RCP) is used as the platform for the Elastic Path Commerce Manager application, as it combines the rich interface of a desktop application with the power of web connectivity. Furthermore, it provides powerful customization capabilities via the plugin architecture, native look and feel across platforms, and extensive GUI libraries and toolkits. Finally, as part of Eclipse—the most widely used Java environment—its powerful development tools and broad familiarity enable developers working on the platform to become highly productive quickly. Read more about Eclipse.
The Business Intelligence and Reporting Tools (BIRT) project is a top level project within the Eclipse Foundation that provides reporting and business intelligence capabilities for J2EE applications. BIRT is used within the Elastic Path Commerce Manager to provide a variety of parameters based sales and marketing reports. The BIRT engine is also used for creating printable artifacts including invoices and pick/pack slips. Read more about BIRT.
JAX-WS & JAXB
Sun's Core Web Services technologies (JAX-WS & JAXB) are used for standards-based web services. The JAX-WS is the latest Java standard for XML web services and is easier to understand and use than previous frameworks because it separates the web services definition from the data-binding components. JAXB is used within JAX-WS to convert between XML and Java. Read more about JAX-WS and JAXB.
Velocity is an open-source, high-performance templating engine that provides the ability to render dynamic front-end pages in a variety of formats using a straightforward syntax to enforce strict separation in a MVC architecture. Elastic Path utilizes Velocity in favor of competing technologies like JSP and JSF for the sake of simplicity, performance and maintainability. Read more about Velocity.
Direct Web Remoting (AJAX)
Maven is an Apache open-source project for managing software build processes. Maven strives for consistency with a convention over configuration approach. Developers are shielded from the complexities of the build process as much as possible, making the build process easy to use and extend. Read more about Maven.