Files in each layer are placed into a name space using settings in that layer (e.g. a package prefix may be added, html files placed in the web directory). Files in a subsequent layer with the same name will replace, or modify the previous one. Formats like sc, sct, and schtml support a type-safe 'modify type' operation by merging the source files using the code-processor. This operation changes the original type: adding fields, overriding methods, setting properties.
The combined result is saved in a typical project directory that's compiled and run. Learn more.
Templates are converted to Java that's transpiled to readable JS for the browser. Synchronize overlapping layers of the application to reduce the cost and complexity of client/server programming. Learn more.
Supports interactive schema migration. Provides details about schema changes, schema history with validation.
Programmers can use thread-safe APIs that avoid stale references and build efficient DB components with caching, 'auto commit' or transactions.
Join data from different data sources all using annotations. Built-in workflow features for testing and staging changes against a production DB. Learn more.
Layers support package install/update for maven and other package formats. They define new file formats, directory structure for downstream layers, add code-processors, modify Java types with layers.
As a project grows in size, layers offer refactoring freedom. A large type that has accumulated dependencies can be split into multiple layers, merged back again without changing the generated code. Those parts of that same type can be used in another process - e.g. a new mobile UI, or back-end service.