Domain Service (Java)
Build a domain-service based on Java supporting Domain Driven Design (DDD) principles to serve a wide range of purposes including design model and code generation.
Formally known as DDD Service Project / Low-Code Project Java
Available in product edition: ProfessionalIntroduction
This project type supports designing all elements of the component with a high level of automation – from design, to develop, to deploy. The Solution Designer lets you model all parts in a structured and organized way, offering rich documentation possibilities for most of these elements with e.g., auto-generated UML diagrams to visualize the design model. This project type offers full automation support for code generation, resulting in up to 70% of the needed code. Meaning, you can fully concentrate on adding the needed business logic for the solution to solve the dedicated business problem.
Stack
The project is based on the Java Spring Boot Stack.
Projects of this type, created with version 4.1.0 or higher, are using the Java Spring Boot Stack 2.0 by default. If you want to migrate existing projects based on Java Spring Boot Stack 1.0, please follow the Upgrade Instructions.
Available Extensions
- Aggregate Persistence Support: Easily persist your business data in a database (RDBMS/MongoDB).
- API Modelling: Model and implement a secure REST API and publish it as an OpenAPI specification.
- Business Event Support: Model and implement business events and agents using Apache Kafka.
- Domain Modelling: Model and implement your business logic based on Domain Driven Design principles.
- Integration Modelling: Model and implement integrations to other services.
- Unit Testing Support: Autogenerate unit testing stubs for your implementation.
- Saga Pattern Support: Model and implement your services using the Saga Pattern for distributed transaction (Only available for projects based on Java Spring Boot Stack 2.0)
- Swagger UI Support: Visualize and easily access your REST API.
- Camel Integration Support: Easily connect diverse systems and applications using well-established Enterprise Integration Patterns (EIPs).
Available Capabilities
The following capabilities can be enabled through project settings to enhance your modeling and design experience:
-
Decisions: Enable architectural decision recording and documentation capabilities for your system. For detailed information, see Architectural Decisions.
-
Architecture: Design your architecture using the C4 model methodology. For detailed information, see C4 Modeling.
-
Domain Driven Design: Model and design complex business domains using Domain Driven Design (DDD) approach and patterns. For detailed information, see Graphical implementation design - Domain Driven Design.
-
Implementation Design: Design and model the technical implementation details of your system. For detailed information, see Graphical implementation design - Implementation Design.