MapStore 2 leverages a full separation of concerns between the backend and the frontend.
The frontend is a Javascript web application communicating with MapStore 2 own web services using AJAX and external ones through an internal, configurable, proxy.
The backend is a suite of web services, developed in Java and deployed into a J2EE container (e.g. Apache Tomcat).
The frontend is based on the ReactJS library and the Redux architecture, which is a specific implementation of the Flux architecture.
It allows plugging different mapping libraries (with Leaflet and OpenLayers 3 as our first implementation targets) abstracting libraries implementation details using ReactJS web components and actions based communication.
Backend services include at least (but not only) these ones: