Garth Gilmour: Modern JVM Development | November 27th-29th, 2019 – GOTO Academy NL

Garth Gilmour: Modern JVM Development | November 27th-29th, 2019

 

 

Modern JVM Development with Kotlin, Microservices and Kafka

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 favor 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).
 
Target Audience
This three-day course is designed for experienced Java developers who wish to
upgrade their skillset to the latest languages, libraries and frameworks available
on the Java Platform.
 
By the end of the course you 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 Kotlins 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
 
                                                                                                                         

Masterclass 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. 
  
 
 Would you like to join as a group?  -  Contact us here                                                                 

Upcoming training dates