Modern JVM Development with Kotlin, Microservices and Kafka

  • Date TBC
  • Intermediate
  • Virtual | Classroom

A 3-day workshop designed for experienced JVM developers who wish to upgrade their skillset to latest languages, libraries and frameworks available on the Java Platform

Book For My Team

We kick-start our GOTO Academy NL partnership with a public delivery of 'Modern JVM Development with Kotlin, Microservices and Kafka'. This three-day course will run from 27th-29th November 2020 in Amsterdam and is designed for experienced JVM developers who wish to upgrade their skillset to latest languages, libraries and frameworks available on the Java Platform.

Outline

Software development on the JVM has changed beyond recognition over the past few years. Until recently the Java language and JEE platform remained the base off which a vibrant ecosystem of open source frameworks was built. But this foundation proved unable to cope with challenges such as cloud computing, multi-core hardware, microservices, machine learning, reactive design and the proliferation of client devices.

Modern JVM developers favour languages like Kotlin, build services on non-blocking servers like Netty, transfer data via event streams and rely on cloud providers to help manage scalability and fault tolerance. This has driven the growth of a new generation of reactive frameworks such as Ktor, HTTP4K, Kafka and Redis. Agile processes remain, but incorporate new ideas (like Property Based Testing) and now encompass the full software lifecycle (via tools like Docker and Kubernetes).

What you will learn

By the end of the course delegates will be able to

  • Program using all the features of the Kotlin language
  • Write build files using the new Kotlin DSL in Gradle V5
  • Create your own Kotlin DSL's for custom configuration
  • Use Arrow to enhance Kotlin's support for Functional Types
  • Apply TDD, BDD and Property Based Testing in Kotlin
  • Write RESTful Microservices using Ktor and HTTP4K
  • Link Microservices via messaging and event streams in Kafka
  • Deploy sets of services via both Docker and Kubernetes
  • Access NoSQL data stores from services via reactive APIs

As with all our trainings, the course will be a mix of theory and practical, hands-on exercises.

Structure:

The course is divided up into three components:

Part 1 – The Kotlin Language and Key Libraries

Initially delegates will complete an accelerated introduction to the Kotlin language and ecosystem. This will cover all the OO and FP components of the language, plus advanced topics such as creating DSL’s and ensuring interoperability with legacy Java code. They will also gain experience of popular libraries such as KotlinTest, Gradle 5, Arrow and TornadoFX.

Part 2 – Creating Microservices in Kotlin

During the second part of the course delegates will use the Ktor and HTTP4K frameworks to create RESTful services. All aspects of creating robust endpoints will be covered, with particular emphasis on Unit Testing. Once the services have been created delegates will learn how they can be integrated into a coherent system via the Kafka event broker and NoSQL databases such as Redis.

Part 3 – Sample Project

The final part of the course will consist of a case study, where delegates will be led though creating and deploying a set of services to implement a sample system. As part of the deployment process they will be introduced to the basics of Docker and Kubernetes. Examples of deploying to cloud providers like AWS will also be given.

Prerequisites:

Delegates must have at least five years experience of software development in industry using either Java or C#. They should be familiar with the basics of distributed system design and REST, ideally by working on projects using frameworks like Spring Boot and the .NET Web API.

Book your spot

Places are limited and filling up fast, so book early to avoid disappointment.

Garth Gilmour
Google Developer ExpertGoogle Developer Expert

25 years coding and educating. 1000+ deliveries of (almost) everything to everyone.

Follow Garth
Ryan Adams

Used to make software for learning as a developer, now helping software makers learn.

Follow Ryan
For a breakdown of what to expect in our training, check out our training overview page.
Deloitte logo
Atlassian logo
Workday logo
BMW logo
Amex logo
McAfee logo
PWC logo