io.sphere.sdk.meta.Architecture Maven / Gradle / Ivy
package io.sphere.sdk.meta;
import io.sphere.sdk.models.Base;
/**
* Placeholder for the architecture description in Javadoc.
*
* The JVM SDK consists of a lot of SBT modules:
*
*
*
* (The picture is maybe outdated, but it is good enough to show the idea.)
*
* Modules which do not depend on each other can be compiled and tested in parallel. The build is faster since all available processors can be used instead of working with just one processor.
* The middle area in the graphs of the following CPU diagram shows the CPU usage at the time of executing tests in a clean project:
*
*
*
* A highly modular architecture makes sure that the SDK is easily extensible. The SDK's classes are not unnecessarily coupled to each other.
* For example, the client modules do not "know" the model modules (containing queries and commands) and vice versa.
* So it must be possible to create more model packages without changing the client. This was the problem with the old
* SDK that bound the services directly to the client
* and made it therefore impossible to extend without touching the original code. Additionally removing the service coupling to
* the client makes it possible to create different clients for different future implementations.
*
*/
public final class Architecture extends Base {
private Architecture() {
}
}