This is a second part of the previous writing about the option for streaming data from Amazon DynamoDb to other services. I wasn’t aware of all options of Amazon Kinesis family services when was writing the first part. But during preparation, I noticed that this is a good alternative to the old school AWS Lambda processing, which I described in the first part.

Well, what’s so interesting in this alternative is that you don’t need to bother about the connectivity to your Amazon ES from Lambda code, which was quite a tricky place, to be honest. All you need is…

It’s well known that DynamoDB works well for lookup queries. But if you need to run heavy, analytical queries against the data in the DynamoDB table, you would need to use other tools for indexing data. One of the solutions you can come across in the AWS documentation and AWS blog posts is to use DynamoDB streams to load data to the AWS ElasticSearch service for indexing and providing a reacher search possibilities to users.

The image is from the original post on the AWS blog.

This time I decided to make all configurations via the provisioning tool — terraform…

I am going to quickly show some cool things, which could be done almost out of the box by means of the Spring Actuator module. I selected just 4 cool features, but there are of course more.

Before getting started with cool things, I must warn you that big power brings also high responsibility. Don’t forget to check the security part of actuator documentation before delivering a solution to production.

Setup project

To show something we need a Spring project, I would need Spring MVC, Actuator, and Lombok to make life easier.

I showed already the Spring CLI in my previous article

Not so many people, using Spring MVC consider or even know the alternative way of describing the controllers (or better say handlers) in the project. I would like just quickly show how nice and concise could be this approach, and also, what is not less important, fun. This is the main reason why we all are here, right?

Spring CLI

To show something, we need this “something”. Let’s quickly create the simple, sample MVC project in Spring. To do that I am going to use Spring Boot CLI.

spring init -a func-endpoints \
--build gradle \
-d web \
-g com.relaximus …

This is a continuing of the previous reading about the core functionality of the Spring Framework provided for types conversion. Here we’ll take a look at the concepts of Converters and Formatters.

Short reminding — the project serving as a victim for the conversion executions could be found here.


The Converter concept is a more general one, it allows you to convert data between any two types. This means that you can use not only for the web-layer for converting from String but some more general conversion logic. Let's start with this type-to-type example...

ConversionService direct usage

First, we would need the target…

There are some basics that usually allow you to handle a bit more complicated abstractions on top of them. I think, in the case of Spring — the type conversions is one of such topics. I tried to structure a bit what Spring has and how we can use it in our applications. The reading may be more useful to the beginning developers with Spring, but I hope the experienced developers might find something interesting in it.

Spring allows you to do a lot of elegant things with your code and types conversion plays a crucial role in this “magic”

An interesting question came to my mind when I was playing around with the AWS Autoscaling group setup. What is actually a better, most elegant way to deploy apps in your EC2 instances, especially in the AWS autoscaling group? To be honest, I don’t know the right question, but the alternative way of doing that to just pulling it from S3 in user data I know for sure now.

I am going to use the CI tools provided by AWS: CodeBuild and CodeDeploy. Let’s see how it works and what advantages it gives.

The code of the application, which is…

Original publication is here.

Let’s take a look how neat and nice could be code for persisting in Amazon’s DynamoDB service using Spring data dynamodb project. Speaking of aws dynamodb, you can’t avoid to use local version of dynamodb during development cycle. So, we slightly touch this option here.

DynamoDb is a NoSQL highly scalable database from Amazon Web Services.

The full example code could be found on github.

Project setup

Easily start the blank spring project:

You can do it manually on spring initializer.

Unpack archive, which get after curl executed. Now you are ready to go.

Spring data dynamodb

This is an…


software magic

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store