Skip to content

Conversation

@rjayasinghe
Copy link
Contributor

No description provided.

@rjayasinghe rjayasinghe requested a review from smahati as a code owner January 29, 2026 14:26
Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Spelling Mistakes

  • java/cap_in_non_cap_applications.md:138:26 Unknown word "alesi"

Generally, for each spelling mistake there are 2 ways to fix it:

  1. Fix the spelling mistake and commit it.
  2. The word is incorrectly reported as misspelled → put the word on the project-words.txt list, located in the root project directory.

rjayasinghe and others added 2 commits January 30, 2026 14:11
Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Spelling Mistakes

  • java/cap_in_non_cap_applications.md:170:135 Unknown word "applicaton"

Generally, for each spelling mistake there are 2 ways to fix it:

  1. Fix the spelling mistake and commit it.
  2. The word is incorrectly reported as misspelled → put the word on the project-words.txt list, located in the root project directory.

</dependency>
```

Credentials and service coordinates for connecting to a SAP Event Hub instance need to be provided by the runtime environment of your applicaton.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Credentials and service coordinates for connecting to a SAP Event Hub instance need to be provided by the runtime environment of your applicaton.
Credentials and service coordinates for connecting to a SAP Event Hub instance need to be provided by the runtime environment of your application*.

Or maybe one of these: applicator, applicators, applicatory, applications?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

already fixed.

@rjayasinghe rjayasinghe marked this pull request as draft February 2, 2026 08:54
Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Spelling Mistakes

  • java/cap_in_non_cap_applications.md:185:378 Unknown word "applicaton"

Generally, for each spelling mistake there are 2 ways to fix it:

  1. Fix the spelling mistake and commit it.
  2. The word is incorrectly reported as misspelled → put the word on the project-words.txt list, located in the root project directory.


Credentials and service coordinates for connecting to a SAP Event Hub instance need to be provided by the runtime environment of your application. For more details you can have a look at the the [SAP Event Hub CAP Plugin](https://github.com/cap-java/cds-feature-event-hub).

## Use the Transactional Outbox to add Resilience to Audit Log and Messaging
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Outbox requires CDS model -> requires cds build -> workaround is required in none-CAP app. Better omit for now.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@BraunMatthias As far as I understood it only the persistent outbox requires a CDS model. Thus, I would remove the sections about the persistency (and resilience) and just explain that with the automatically added in-memory outbox the service call is linked to the transaction outcome.


{{ $frontmatter.synopsis }}

The CAP Java framework [integrates itself with Spring Boot](./spring-boot-integration) every CAP Java app is also a Spring Boot app. Thus, CAP Java applications can also declare native Spring Boot components in order to integrate legacy code or features that are not yet supported by CAP Java.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

First sentence is syntactically incorrect.
CAP Java offers integration with Spring Boot - but this is not a must.
Spring Boot is one aspect - but actually Alesi is mainly about reusing our CAP integration plugins as client APIs for BTP platform services w/o having to add CDS to the project.
A link to the (C)alesi guide would be helpful.



::: info
The foundation for this guide is that you can take complete applications built with idiomatic Spring Web MVC and Spring Data JPA and combine them with parts of of the CAP Java framework. This works because the core of CAP Java is just an event machine working with String identifiers and maps ([Cds Data](./cds-data)) and don't have a dependency to a CDS model or database schema.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Spring / CdsData is not the point - the point is that the Alesi integration part can be used in none-CAP projects w/o the CDS model.


<dependency>
<groupId>com.sap.cds</groupId>
<artifactId>cds-framework-spring-boot</artifactId>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why is the spring boot dependency required for audit log API?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess cds-services-impl as runtime dependency is mandatory.


## CAP Messaging

The CAP framework offers a logical messaging layer. This means that applications can emit events and messages to a `MessagingService` regardless of the target messaging infrastructure. The local default implementation for messaging is using the filesystem as the communication layer. Similar to the logical audit log support the messaging layer is already part of the core CAP Java modules. Thus, a plain Spring Boot application only needs to perform these two steps to activate CAP messaging:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The CAP framework offers an abstraction layer for messaging services.


## CAP Messaging

The CAP framework offers a logical messaging layer. This means that applications can emit events and messages to a `MessagingService` regardless of the target messaging infrastructure. The local default implementation for messaging is using the filesystem as the communication layer. Similar to the logical audit log support the messaging layer is already part of the core CAP Java modules. Thus, a plain Spring Boot application only needs to perform these two steps to activate CAP messaging:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

core CAP Java


<dependency>
<groupId>com.sap.cds</groupId>
<artifactId>cds-framework-spring-boot</artifactId>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not required for messaging - would expect other dependencies such as cds-services-impl

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Spelling Mistakes

  • java/cap_in_non_cap_applications.md:17:168 Unknown word "depdendencies"
  • java/cap_in_non_cap_applications.md:180:378 Unknown word "applicaton"

Generally, for each spelling mistake there are 2 ways to fix it:

  1. Fix the spelling mistake and commit it.
  2. The word is incorrectly reported as misspelled → put the word on the project-words.txt list, located in the root project directory.


{{ $frontmatter.synopsis }}

One of the strengths of CAP (Java) is that it offers a [variety of plugins integrating with SAP BTP services](../plugins) while keeping applications free of technical depdendencies to such services. But not only CAP applications can benefit from these plugins. CAP Java itself is designed independent of other application frameworks it offers an [integration layer to Spring Boot](./spring-boot-integration).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
One of the strengths of CAP (Java) is that it offers a [variety of plugins integrating with SAP BTP services](../plugins) while keeping applications free of technical depdendencies to such services. But not only CAP applications can benefit from these plugins. CAP Java itself is designed independent of other application frameworks it offers an [integration layer to Spring Boot](./spring-boot-integration).
One of the strengths of CAP (Java) is that it offers a [variety of plugins integrating with SAP BTP services](../plugins) while keeping applications free of technical dependencies* to such services. But not only CAP applications can benefit from these plugins. CAP Java itself is designed independent of other application frameworks it offers an [integration layer to Spring Boot](./spring-boot-integration).

Or maybe one of these: dependences, dependence, dependence's, dependency's?


## Use the Transactional Outbox to add Resilience to Audit Log and Messaging

The CAP Java transactional outbox is a component that allows binding of external service calls to the outcome of the current request's transaction. With that semantics you can be sure that e.g. the SAP Audit Log Service is only called when your business transaction was successful. With added persistence for the outbox you can even make the *outboxed* calls resilient against applicaton restarts.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The CAP Java transactional outbox is a component that allows binding of external service calls to the outcome of the current request's transaction. With that semantics you can be sure that e.g. the SAP Audit Log Service is only called when your business transaction was successful. With added persistence for the outbox you can even make the *outboxed* calls resilient against applicaton restarts.
The CAP Java transactional outbox is a component that allows binding of external service calls to the outcome of the current request's transaction. With that semantics you can be sure that e.g. the SAP Audit Log Service is only called when your business transaction was successful. With added persistence for the outbox you can even make the *outboxed* calls resilient against application* restarts.

Or maybe one of these: applicator, applicators, applicatory, applications?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants