Graphical implementation design
The Graphical implementation design capability allows users to visually design service projects using an intuitive canvas-based interface. Users can drag and drop various model elements to create comprehensive service architectures and designs.
Overview
The Graphical implementation design tool provides a visual canvas where you can:
- Design service architectures using drag-and-drop model elements
- Organize components by grouping related elements
- Define relationships between different service components
- Model complex business logic through visual representations
- Create integration patterns for external and internal services
The Graphical implementation design capabilities can be enabled through the project settings. This allows you to customize your project environment and enable the modeling features based on your specific project requirements.
Benefits for Ideation and Development
The graphical approach to service design 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 capability is provided in addition 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.
Model Elements
The Graphical implementation design tool offers a comprehensive set of model elements organized into two main categories:
Domain Driven Design
These elements help you model your business domain following Domain-Driven Design principles:
Aggregate
- Purpose: Represents the main entity that controls access to a cluster of related objects
- Usage: Use as the primary entry point for domain operations
- Characteristics: Maintains consistency boundaries and enforces business rules
Entity
- Purpose: Represents objects that have a distinct identity
- Usage: Model domain objects that are uniquely identifiable
- Characteristics: Has a unique identifier and lifecycle
Value Object
- Purpose: Represents concepts that are defined by their attributes rather than identity
- Usage: Model immutable objects that describe characteristics
- Characteristics: Immutable, equality based on values, not identity
Command
- Purpose: Represents an intention to change the state of the system
- Usage: Model user actions or system operations
- Characteristics: Immutable, represents intent, can be validated
Domain Service
- Purpose: Encapsulates domain logic that doesn't naturally fit in entities or value objects
- Usage: Model complex business operations that span multiple domain objects
- Characteristics: Stateless, contains domain logic, operates on domain objects
Business Event
- Purpose: Represents something significant that has happened in the domain
- Usage: Model important occurrences that other parts of the system need to know about
- Characteristics: Immutable, represents past events, can trigger reactions
Business Error
- Purpose: Represents domain-specific error conditions
- Usage: Model business rule violations and exceptional conditions
- Characteristics: Contains error context, can be handled by business logic
Implementation Design
These elements help you model the technical implementation of your service:
Class
- Purpose: Represents a blueprint for creating objects
- Usage: Model data structures and behavior in your service
- Characteristics: Contains properties and methods, defines object structure
Method
- Purpose: Represents a function or procedure within a class
- Usage: Model specific operations and behaviors
- Characteristics: Has parameters, return type, and implementation logic
Service
- Purpose: Represents a collection of related functionality
- Usage: Model business logic and application services
- Characteristics: Stateless, provides specific capabilities, can be injected
REST API
- Purpose: Represents a REST API that your service either consumes or provides
- Usage: Model dependencies on external services or expose your service's interface
- Characteristics: Defines base URL, authentication, available operations, and integration type (consuming/providing)
REST Operation
- Purpose: Represents a specific operation on a REST API (either consumed or provided)
- Usage: Model individual API calls to external services or endpoints exposed by your service
- Characteristics: HTTP method, endpoint, request/response schemas, and integration type (consuming/providing)
Message
- Purpose: Represents data structures for asynchronous communication
- Usage: Model data exchanged between services via messaging
- Characteristics: Defines message schema, serialization format
Message Listener
- Purpose: Represents a component that processes incoming messages
- Usage: Model asynchronous message processing logic
- Characteristics: Subscribes to topics, processes messages, handles errors
Message Publisher
- Purpose: Represents a component that sends messages
- Usage: Model asynchronous message sending logic
- Characteristics: Publishes to topics, handles delivery guarantees
Message Topic
- Purpose: Represents a channel for message exchange
- Usage: Model message routing and distribution
- Characteristics: Defines message routing rules, delivery semantics
DB Collection
- Purpose: Represents a collection of documents in a NoSQL database
- Usage: Model document-based data storage
- Characteristics: Schema-less, supports complex nested structures
DB Table
- Purpose: Represents a table in a relational database
- Usage: Model structured data storage with relationships
- Characteristics: Schema-based, supports ACID transactions, relational integrity