RSSAmplifier

Blog

Asimio Tech

tech.asimio.netRSS feed ↗10 posts

Latest posts

Provisioning SNS topics, SQS queues to run integration tests with Testcontainers, LocalStack and Docker for Spring Boot applications

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…

RESTful API Guidelines

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…

Connecting your Testcontainers integration tests to a remote Docker host

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…

Provisioning AWS DynamoDB tables and seeding data to run integration tests with Testcontainers and Docker for Spring Boot applications

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…

Publishing AWS SNS Notifications with Spring Boot, AWS Java SDK v2, and spring-cloud-aws-starter-sns

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…

Getting started with Spring Boot, DynamoDB, AWS Java SDK v2, spring-cloud-aws-starter-dynamodb, and dynamic queries with DynamoDbTemplate

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…

Propagating Tenant data to Spawned/Async Threads with ThreadLocalTargetSource, TaskDecorator in Multi-tenant Spring Boot applications

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…

Reuse Testcontainers initialization and configuration code with JUnit 5 Extension Callbacks in your Spring Boot Integration Tests

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…

Writing integration tests with Testcontainers and Cosmos DB Docker emulator for Spring Boot applications

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…

Deploying Spring Boot applications from a Maven repository to Azure Spring Apps with Azure CLI

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.…