1. OVERVIEW Message brokers and messaging systems are fundamental to building resilient distributed applications. Both AWS SQS and SNS are messaging systems that facilitate asynchronous communication between different parts of a distributed architecture. Your organization’s Spring Boot applications use different messaging approaches: certain applications send SNS notifications , others publish…
1. OVERVIEW RESTful API s started being widely adopted for systems interoperability and integration in the mid-2000s, maybe earlier. Two decades later, many API s in production today, that claim to be “ RESTful ”, violate basic REST principles, creating confusion, frustration, and unnecessary complexity. Take for instance: POST /accountSearchByNumber POST /accountSearchByLogin POST /DeleteEvent…
1. OVERVIEW I have shared how to use Testcontainers to run Spring Boot CosmosDB , and DynamoDB integration tests locally, meaning in your development workstation or laptop. But what if for licensing reasons, or resources constraints you cannot install Docker Desktop ? What if your organization needs to share specialized testing environments not available locally? What if your integration tests…
1. OVERVIEW You are deploying, or planning to deploy your Spring Boot RESTful applications to AWS . Some of these Spring Boot applications might use Amazon DynamoDB data stores instead of relational databases. Along with writing unit tests for REST controllers, business logic, etc. , you should consider writing integration tests to verify the interactions between different parts of the system work…
1. OVERVIEW Amazon SNS (Simple Notification Service) is a fully managed topic-based messaging service that helps publishing notifications for subscriber/listener applications to process. Amazon SNS follows the pub/sub model to facilitate asynchronous communication between different systems. SNS supports multiple delivery protocols such as: http/https, email, sms AWS SQS AWS Lambda AWS Kinesis Data…
1. OVERVIEW If your organization is working, or planning to work with large amount of unstructured data, Amazon DynamoDB would be an option to consider, especially if your organization is already invested in AWS . DynamoDB is a schemaless NoSQL (key-value), performant, and scalable database solution. This blog post shows you how to get started with Spring Boot 2 or 3 , DynamoDB , Spring Cloud AWS…
1. OVERVIEW In late 2017, I published a blog post about using Spring’s ThreadLocalTargetSource as an alternative to dealing explicitly with ThreadLocal in Spring Boot Multi-tenant applications . Where did I use ThreadLocal that I found Spring ’s ThreadLocalTargetSource a useful alternative? Let’s start with some context. Earlier that same year I had published writing multi-tenant RESTful…
1. OVERVIEW You are writing integration tests for your Spring Boot applications with Jupiter / JUnit 5 and Testcontainers . Take for instance this test class from Writing integration tests with Testcontainers and Microsoft’s Cosmos DB Docker emulator for Spring Boot applications : UserControllerTestContainersIntegrationTest.java : // ... @Testcontainers public class…
1. OVERVIEW As part of your organization’s modernization effort, your team is writing Spring Boot applications that store data to, and retrieve data from Azure Cosmos DB s instead of relational databases. You might have written dynamic Cosmos DB queries using Spring Data Cosmos and ReactiveCosmosTemplate . Your integration tests might be connecting to a dedicated Cosmos DB hosted in Azure , which…
1. OVERVIEW Azure Spring Apps is a platform as a service ( PaaS ) and one of the services Azure offers for your organization to run Spring Boot applications. With very little effort, you can provision the Azure Spring Apps infrastructure required to deploy and run Spring Boot Web, RESTful, Batch, etc. applications. This allows your team to spend more time with the applications’ business logic.…