Spring Cloud 2023.0.0-M2 (aka Leyton) has been released
On behalf of the community, I am pleased to announce that the Milestone 2 (M2) of the Spring Cloud 2023.0 Release Train is available today. The release can be found in Spring Milestone repository. You can check out the 2023.0 release notes for more information.
Notable Changes in the 2023.0.0-M2 Release Train
In this milestone, we have migrated the documentation of all the Spring Cloud projects to Antora.
See all issues and pull requests here.
Spring Cloud Commons
- Refresh Scope on restart - a feature tailored to allow adapting to environment changes on JVM Checkpoint-Restart (PR 1266)
Spring…
Producer Initiated Transactions in Spring Cloud Stream Kafka Applications
Other parts in this blog series
Part 1: Introduction to Transactions in Spring Cloud Stream Kafka Applications
This article is part 2 of the blog series in which we look at transactions in detail with Spring Cloud Stream and Apache Kafka. We saw a general introduction to transactions in the previous part, touching on the fundamental ideas. In this part of the blog series, we get to the metal by seeing a few implementation details and their practical aspects.
In this article, we largely stay on the producer's side to understand how transactions work with Spring Cloud Stream and Apache Kafka.
…
A Bootiful Podcast: Spring AI lead Dr. Mark Pollack
Hi, Spring fans! In this episode I talk to Dr. Mark Pollack, lead of the new Spring AI project. This episode was recorded live at SpringOne at VMware Explore 2023, in Las Vegas.
Introduction to Transactions in Spring Cloud Stream Kafka Applications
We are starting a new blog series that focuses on working with transactions in Spring Cloud Stream Kafka applications. This blog series covers many low-level details of writing transactional applications with Spring Cloud Stream and Apache Kafka. By the end of this blog series, we hope to give you enough information about writing transactional Spring Cloud Stream Kafka applications for various business use cases.
Basic Building Blocks
The foundational support for transactions in Spring Cloud Stream Kafka applications primarily comes from Apache Kafka itself and the Spring for Apache Kafka…
This Week in Spring - September 26th, 2023
Hi, Spring fans! Welcome to another installment of This Week in Spring! How are you? It's September 26th, 2023, and I am in sunny Singapore for SpringOne at VMWare Explore Singapore. If you're around, don't forget to say hi!
It's gonna be a fun and busy week in Singapore, and then next week I'm off to Antwerp, Belgium, for the amazing Devoxx BE 2023. Then, I'm off to Morocco, for Devoxx MA 2023. Then, I'm off to Amsterdam for SpringOne Tour Amsterdam. If you're in any of these places, do not hesitate to reach out and say hi! I'd love to chat! And with that, we've got a ton of things to cover…
Paketo Buildpacks Bionic End Of Support
The Spring Boot plugins for Maven and Gradle provide the ability to build Docker images using Cloud Native Buildpacks. By default, Spring Boot uses the CNB builders provided by the Paketo Buildpacks project.
What's Changed
The Paketo Buildpacks project has announced that Ubuntu 18.04 Bionic-based builders are no longer supported, in favor of Ubuntu 22.04 Jammy-based builders. See the Paketo announcement for more details on the builders that are affected by this change.
The Maven and Gradle plugins for Spring Boot versions 3.1 and earlier use the Bionic Base Builder by default when building…
Simplified Event Externalization with Spring Modulith
Transactional service methods are a common pattern in Spring applications. These methods trigger a state transition important to the business. This usually involves a core domain abstraction, such as an aggregate and its corresponding repository. A stereotypical example of such an arrangement might look like this:
@Service
@RequiredArgsConstructor
class OrderManagement {
private final OrderRepository orders;
@Transactional
Order complete(Order order) {
return orders.save(order.complete());
}
}
As state transitions like these might be interesting to third parties, we might want…
Spring Modulith 1.1 M1 and 1.0.1 released
On behalf of the community, I am happy to announce the release of Spring Modulith 1.1 M1 and 1.0.1. While the latter primarily ships minor bug fixes, the former packages quite a few new features, such as:
- Support to externalize application events into Kafka, AMQP and JMS GH-248
- APIs to access completed and incomplete event publications GH-294
- Support for Neo4j as persistence store to back the Event Publication Registry GH-301
We will have a blog post elaborating on the former coming soon. Feel free to check out the full change log and revamped reference documentation in the meantime. Thanks…
A Bootiful Podcast: Java community legend Sharat Chander
Hi, Spring fans! Java 21 is out and in order to celebrate, I talk to Java community legend Sharat Chander.