Access MongoDB from your local Machine
In order to verify whether entities have been persisted correctly you want to connect to the used MongoDB so that you can lookup the data in the database. To do this, a connection to MongoDB from your local machine must be established.
Activate a Spring Boot Profile for a Component
You have defined different Spring Boot profiles for your Java Domain Service service and want to activate one of them when deploying the service through an application composition project in order to apply a specific bunch of configurations.
Add a Certificate manually to an external Service
If you already have a running service and you want to connect to the external service. To establish the connection between these two services, you have to manually add the certificate in order to secure the connection between them.
Add external Components to Applications
You have developed a microservice and have a ready to use helm chart and image available.
Application Composition
Content on this page reflects earlier versions of the and will be updated soon.
Apply Best Practices for Code Implementation
In this document you can find some best practice code samples that might be helpful while writing code for Java domain service projects.
Apply Changes in Services through Applications
If a Service is deployed through an Application, changes made in the design or the implementation of the Service will not automatically be reflected in the deployed Application. Instead, the Application needs to be explicitly adapted to use a newer version of the Service component in order to apply the changes.
Authorize your service with OPA and Envoy
Perform authentication checks for your services in an efficient way by implementing fine-grained request-level authorization using Open Policy Agent (OPA) and Envoy sidecars.
Bootstrap a Service from a Shared Design Model
In this hands-on trial, you will bootstrap a production-ready microservice from a
Build an LRA-Coordinator in the Workbench for the SAGA Feature
You want to implement LRA-Coordinator and use it within a Saga application composition project. In this how-to, you will learn how to import the LRA-Coordinator asset into IBM and build the LRA coordinator project with custom tekton pipelines.
Check Logs of deployed Services
You have already deployed services and want to check the logs for one of them after deploying through a deploy pipeline or through an application composition project.
CI/CD and Deployment
Content on this page reflects earlier versions of the and will be updated soon.
Configure Istio in mTLS Way
Configure Istio in mTLS mode for secure service-to-service communication.
Configure Log Levels for Services
While running your application, sometimes you need to output some information about the application behaviour in a certain way, this is called application logging. There are different detail levels of logging that you can configure based on the data you need.
Consume Events from another Service
You want to consume an Event from a Service that has already been published so that you can implement logic that is executed when the Event is triggered.
Create a valid UUID in a project
You have a TypeScript or JavaScript project and want to create a valid UUID in order to use it as an unique identifier for an object.
Create custom Pipelines in the Workbench
You want to create a custom pipeline tailored to your specific industry needs and operational requirements to enhance efficiency.
Create custom Pipelines to deploy to a remote Cluster
You want to deploy a solution you built with to an OpenShift© cluster different from the one is installed on.
Debug Events locally
I have a Domain Service project with Event publishing inside and I want to debug e.g. the event-publishing Command. How can I debug my Command and see whether my Event was published correctly?
Define Entity Mapping (Java)
When working with Domain services mapping between api namespace and domain namespace is often needed, for example :
Define Entity Mapping (TypeScript)
When working with Domain services, mapping between api namespace and domain namespace is often needed, for example :
Define Permissions on Asset Catalogs and Assets
You have developed a project and want to share it in an asset catalog or you want to create a project from an existing asset and want to make sure you have the required permissions.
Define Unit Tests (Java)
You already have an existing Java Domain service, you want to include unit testing for that service.
Define Unit Tests (TypeScript)
You want to write unit tests without having access to all of the infrastructure which can be achieved by mocking which is described here in this How-To.
Disable Security for Services and REST Endpoints
You want to disable security checks for REST endpoints or even the entire service in your project for a specific reason.
Enable CORS in the Workbench
Your web browser is designed to by default disable Cross Origin Resource Sharing (CORS) which allows sharing data across different origins ; i.e. the combination of scheme, domain and port. There are some situations where you will need to enable CORS and this can be done across a whole project (Deployment target), for a certain service or for a component in your composed application.
Extend Keycloak Token Validity
Keycloack tokens are used to authenticate the services that are being developed. They have a default timeout validity and hence during development you might get several errors resulting from an expired token. To avoid these errors, you can extend the authentication token validity in your Keycloack settings. This How-To will cover the necessary steps to extend your Keycloak token validity.
Extend MongoDB Repositories for advanced filtering
You have an already existing Java Domain Service and you want to retrieve root entities by complex filter criterias. To achieve this, the generated Repository class has to be extended.
Extend Your Design Through Conversation
In this hands-on trial, you will use the Design Assistant to explore an existing design model, identify what's missing for a new requirement, and extend it — all in plain language, without leaving the designer.
From Prompt to Design-Aware AI
In this hands-on trial, you will implement the same requirement twice — first with your coding assistant alone, then with structured design context from Workbench.
Get JWT Authentication from Keycloak in BAW
Obtain a JWT token from Keycloak to authenticate REST API calls from IBM BAW to .
Implement Error Handling for APIs
You have designed API operations with more than just one resoponse to cover both the success and error case. In your implementation code you want to return a specific response body if an error happens.
Import and use external Assets in the Workbench
You have an asset that was created externally and you want to import into the Workbench and then create a project based on the imported asset. In this How-To, we will import the Narayana LRA Coordinator service and use it within a saga application composition project as an example.
Integrate GenAI
Integrate Gen AI service into your Java application.
Integrate Jira with GitHub
Integrate Git services with your Jira board to track development tasks and activities.
Integrate WebSocket
Set up a WebSocket server in your Domain Java service using Java Stack 2.0 to enable real-time bidirectional communication.
Introduce Breaking Changes safely to an Existing API
You have built an API with and published it so that it can be consumed by other services. Due to new requirements you want to introduce a breaking change without breaching the API contract. To introduce breaking changes it is recommended to create a new version of your API.
Limit Deployment Pods of deployed Services
A Pod is a group of one or more containers that shares network resources, storage and configuration. While deployment or debugging, it is very essential that the containers have enough resources to run. Sometimes, it has limited resources and the node runs out of memory and other times the applications take more resources than they should. This How-To will cover the necessary configuration steps to limit pods in your deployed solution.
Make Workbench Speak Your Language
In this hands-on trial, you will customise the Workbench modelling language to match your organisation's vocabulary — so people in various roles can work in the same place without learning each other's notation.
Manage Workspaces
In this course, you'll learn how to create and manage workspaces within the .
Move Service Projects between two Environments
You have developed a service project in one system and want to move it to another design environment to use it there or continue development.
Perform Remote Debugging
To debug your Java Solution, you can debug them in a number of ways. JUnit is one of them, and using the docker images for the events locally is another method. For more info, please see here.
Produce and Consume Events in Java Basic service
In order to integrate an event against Kafka, you need to publish an event to a Kafka topic.
Project Types
The section below describes Project Types based on
Provide Frontend through Applications
You want to deploy your built frontend through an application in the Workbench and provide a route for it so that it is ready to use.
Release a Service
You have implemented changes in your Service and want to release them so that the new version could be used in an Application.
Run Java Services locally by mirrord
You want to run Java services built with the Workbench locally by use of the tool mirrord.
Share Service Projects as Assets
You want to share the current state of a project so that it can be used for jumpstarting development of a service.
Turn Existing Code into a Design Model
In this hands-on trial, you will import an existing codebase into the Workbench designer using reverse engineering — turning code into a structured design model you can refine and build on.
Unit 1: Foundation of Domain Modeling and Implementation
Content on this page reflects earlier versions of the and will be updated soon.
Unit 10: Set up Project for Implementation
Content on this page reflects earlier versions of the and will be updated soon.
Unit 11: Implement Commands and Publish Events
Content on this page reflects earlier versions of the and will be updated soon.
Unit 12: Implement Domain Service
Content on this page reflects earlier versions of the and will be updated soon.
Unit 13: Implement Agent
Content on this page reflects earlier versions of the and will be updated soon.
Unit 14: Implement Integration Service
Content on this page reflects earlier versions of the and will be updated soon.
Unit 15: Implement API operation
Content on this page reflects earlier versions of the and will be updated soon.
Unit 16: Deploy Project
Content on this page reflects earlier versions of the and will be updated soon.
Unit 2: Design Entities
Content on this page reflects earlier versions of the and will be updated soon.
Unit 3: Design Commands
Content on this page reflects earlier versions of the and will be updated soon.
Unit 6: Create API Namespace
Content on this page reflects earlier versions of the and will be updated soon.
Unit 7: API Schemas
Content on this page reflects earlier versions of the and will be updated soon.
Unit 8: Design API Paths and Operations
Content on this page reflects earlier versions of the and will be updated soon.
Use a different OIDC Provider
You want to use a different Identity provider than the default one.
Use a local Docker Container
You have a Domain Service Java project and want to do local debugging.
Use AI Coding Assistants with Workbench
You're using or want to use Coding Assistants with the Workbench? Start with this quick introduction,
Use an existing Spring Boot Application in the Workbench
You already have an existing Spring Boot application which you want to transform to a Project to use the benefits of the Workbench.
Use custom JPA Annotations
You want to create robust data models that reflect the structure of relational databases using the .
Use custom Recipes and Project Baselines for Code Generation
Coming soon
Use Enterprise Events with Schema Registry
For your asychronous communications within and between services, you want to establish well defined "contracts" of the event payload data for everyone to use by means of using the new schema registry supported feature in .
Use External Entities
An External Entity is considered a proxy of an entity that is managed by another microservice. Normally, the external entity contains only the most important data that is regularly needed in the context of the aggregate to which the external entity belongs. Because of these specifics, it is handled differently than a usual Entity.
Use Java templates to deploy a service
You want to deploy a Java service to OpenShift.
Use the Branching Feature in the Workbench
You want to try out something in your application without affecting anyone working on the same project. provides a branching feature so you can create your separate branch, design, model, and implement your own changes.
Use the Half-Sync/Half-Async in the Workbench
Your have a service that only offers async communication, but you need to call it synchronously.
Use the SAGA Pattern
You want to design transaction-like behaviour using the SAGA pattern support in your Java Domain Service based project.
View Distributed Tracing
Goal: Enable and configure distributed tracing for REST calls, MongoDB operations, and Kafka events in Java stack 2.0 applications using OpenTelemetry with Jaeger.
Workbench Tools
In this course, you'll discover the different Toolsets of the and see their functionalities.