Implementation Design Profile
Overview
Technical implementation details including classes, methods, services, REST/SOAP APIs, messaging patterns, and database structures.
Model elements
| Id | Name | Description |
|---|---|---|
implementation.service | Service | A service that implements business logic or technical functionality |
implementation.class | Class | A class that represents a data structure or component |
implementation.method | Method | A method or operation that performs a specific function |
implementation.rest-api | REST API | A REST API that provides or consumes web services |
implementation.rest-api-operation | REST operation | A REST API operation that defines an HTTP endpoint |
implementation.soap-api | SOAP API | A SOAP API that provides or consumes web services |
implementation.message-publisher | Message publisher | A component that publishes messages to a message broker |
implementation.message-listener | Message listener | A component that listens for and consumes messages from a message broker |
implementation.message-topic | Message topic | A message topic or queue that routes messages between publishers and listeners |
implementation.message | Message | A message that is sent between components via message brokers |
implementation.db-collection | DB collection | A database collection (NoSQL) that stores documents or records |
implementation.db-table | DB table | A database table (relational) that stores records |
Relationships
| Id | Name | Description |
|---|---|---|
implementation.extends | extends | Indicates that a class extends another class |
implementation.triggers | triggers | Indicates that one element triggers an implementation logic element (service, method, etc.) |
implementation.contains | contains | Indicates that an element contains another element |
Usage
Use Cases
The Implementation Design profile can be used for (examples):
- Designing service architectures: Model microservices, domain services, and technical services with their interactions and dependencies
- Documenting REST APIs: Define REST API endpoints, operations, and their request/response structures for API documentation
- Modeling message-driven architectures: Design event-driven systems with message publishers, listeners, topics, and message flows
- Planning database schemas: Model database tables (relational) and collections (NoSQL) with their relationships and data structures
- Designing class structures: Create class diagrams showing inheritance, composition, and method definitions
- Documenting integration patterns: Model SOAP APIs, message brokers, and other integration mechanisms
- Bridging design and implementation: Create technical models that guide developers during implementation
- Generating implementation artifacts: Use models as a basis for code generation or scaffolding
Benefits for Ideation and Development
The graphical approach to design code togehter with DDD profile is particularly valuable during the ideation and development phases of your project. It enables rapid prototyping and visual brainstorming without committing to implementation details, making it easier to explore different architectural approaches and communicate concepts to stakeholders. During development, the visual representation helps maintain consistency across team members and provides clear guidance for implementation. The visual nature makes it easier to spot potential issues early and iterate on designs as requirements evolve.
The Graphical implementation design togehter with DDD profile is provided as replacement to the existing modelling extensions:
- API modelling - for designing REST APIs
- Domain modelling - for business domain design using DDD principles
- Integration modelling - for external service integration
Important: There is no automatic connection between the current modelling capabilities and the new graphical approach. The Graphical implementation design operates independently and does not synchronize with the existing API, domain, or integration models.
Step-by-step guide
- Define Services: Create Service elements for business logic or technical functionality
- Model Classes: Define Class elements for data structures and components
- Add Methods: Create Method elements within services or classes
- Design REST APIs: Define REST API elements and their operations (endpoints)
- Model Message Flow: Create Message Publisher, Listener, and Topic elements for async communication
- Define Persistence: Model DB Table (relational) or DB Collection (NoSQL) elements
- Add SOAP APIs: Define SOAP API elements for legacy or enterprise integrations
- Link Relationships: Use relationship types to connect elements (extends, triggers, contains)
Reference
For the complete profile definition, see the implementation-profile-1.0.0.yaml file.