Skip to main content

Implementation Design Profile

Overview

Technical implementation details including classes, methods, services, REST/SOAP APIs, messaging patterns, and database structures.

Model elements

IdNameDescription
implementation.serviceServiceA service that implements business logic or technical functionality
implementation.classClassA class that represents a data structure or component
implementation.methodMethodA method or operation that performs a specific function
implementation.rest-apiREST APIA REST API that provides or consumes web services
implementation.rest-api-operationREST operationA REST API operation that defines an HTTP endpoint
implementation.soap-apiSOAP APIA SOAP API that provides or consumes web services
implementation.message-publisherMessage publisherA component that publishes messages to a message broker
implementation.message-listenerMessage listenerA component that listens for and consumes messages from a message broker
implementation.message-topicMessage topicA message topic or queue that routes messages between publishers and listeners
implementation.messageMessageA message that is sent between components via message brokers
implementation.db-collectionDB collectionA database collection (NoSQL) that stores documents or records
implementation.db-tableDB tableA database table (relational) that stores records

Relationships

IdNameDescription
implementation.extendsextendsIndicates that a class extends another class
implementation.triggerstriggersIndicates that one element triggers an implementation logic element (service, method, etc.)
implementation.containscontainsIndicates 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.

❗️info

The Graphical implementation design togehter with DDD profile is provided as replacement to the existing modelling extensions:

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

  1. Define Services: Create Service elements for business logic or technical functionality
  2. Model Classes: Define Class elements for data structures and components
  3. Add Methods: Create Method elements within services or classes
  4. Design REST APIs: Define REST API elements and their operations (endpoints)
  5. Model Message Flow: Create Message Publisher, Listener, and Topic elements for async communication
  6. Define Persistence: Model DB Table (relational) or DB Collection (NoSQL) elements
  7. Add SOAP APIs: Define SOAP API elements for legacy or enterprise integrations
  8. 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.