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
In this course, you will learn everything important around application composition within . You will also practice how to compose an application.
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.
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
In this course, you will learn how Continuous Integration and Continuous Delivery (CI/CD) work within . You'll see how to automate your deployments and safely ship new features using pipelines that build, deploy, and release your services.
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.
Create your first HelloWorld API
In this ‘Getting Started’ session, you will experience first-hand how convenient it is to build microservices with . For this purpose, you will implement and deploy a service with a Hello World API.
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.
Design-Aware AI in Action: Quickstart Trial
In this hands-on trial, you will bootstrap a production-ready microservice from a
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.
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.
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
In this course you will learn about the different project types that supports and you will also learn which type is the best fit for your purpose.
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.
Unit 1: Foundation of Domain Modeling and Implementation
Use Case for the Training Courses
Unit 10: Set up Project for Implementation
In this course you will learn how to set up your domain service project for the implementation on your local machine using the Solution CLI.
Unit 11: Implement Commands and Publish Events
In this course you will learn how to implement Factory and Instance Commands of a root entity using your local IDE.
Unit 12: Implement Domain Service
In this course you will learn how to implement a service within the domain namespace using your local IDE.
Unit 13: Implement Agent
In this course you will learn how to implement an agent within the domain namespace using your local IDE.
Unit 14: Implement Integration Service
In this course you will learn how to implement services in integration namespaces and how to call the Rest API of another microservice using your local IDE.
Unit 15: Implement API operation
In this course you will learn how to implement API operations in the using your local machine.
Unit 16: Deploy Project
In this course you will learn how to use the built-in pipeline functionality of the to build and deploy your Domain Service project using the .
Unit 2: Design Entities
In this course you will learn about the different types of entities within a domain namespace. You will also practice how to design entites with their properties using the .
Unit 3: Design Commands
In this course you will learn about the different types of commands within a domain namespace. You will also practice how to design commands with their input, business events and business errors using the .
Unit 6: Create API Namespace
In this course you will learn about the basics of API namespaces and how to create one.
Unit 7: API Schemas
In this course you will learn about API Schemas and how they can be reused in an API namespace.
Unit 8: Design API Paths and Operations
In this course you will learn about paths and operations within an API namespace. You will also practice how to design them using the .
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 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 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.