Now that I am back to writing as I explained in my previous post I will kick start it with the basic setup needed in order to be able to run the code I will be sharing in posts here in the near future.
Apache Kafka is an open-source stream-processing software platform developed by LinkedIn and donated to the Apache Software Foundation and with its late improvements, especially for Streams, it's now a very suitable alternative to running your stream pipelines directly co-located with your microservices applications and this is possible because Kafka-streams is delivered as a simple library. This also means that data is very close and available to your applications, reducing latency and opening up lots of possibilities to enhance your services and add business value to your applications. We will get into details in future posts, for now, let's go to the setup. This is what we will need:
- Git If you're not familiar with it, pls check What is Git? and for quick useful commands I like to recommend git the simple guide and of course it's great official documentation and free online book.
Java 8 up to latest Java. Java 8 will be around for a long time so you can consider using it. If you're learning java and plan to join the working force I would recommend you start learning from Java 8 by now. Currently, there are many distributions, all of them should work, I am currently running OpenJDK 11 in Ubuntu Linux, but there are many more options, some:
Docker - Really helpful to run a local stack for development and share it with fellow developers.
Docker Compose - Helps to create full local, easily manageable infrastructure for local development.
Apache Maven - Maven is an opinionated software project management tool, it helps managing project dependencies and much more using it's many available plugins.
Your preferred IDE to run Java projects.
I really like to add some extra tooling support to my preferred terminals, being Gnome Terminator on Linux or iTerm on Macs, my favorite one is "oh my zsh", it's installation instructions and functionality are better described in their docs, you need to install zsh first and configure your terminal to use zsh by default or switch to it.
If you're completely new to java you can find a lot of free online material so, it's really up to you:
- Java Books
- Free Udemy Java Tutorial
- Java Tutorial is still useful, it used to be a great reference but since... Oracle happened, it's just not being taken care anymore, so it's Java 8 and will most likely not be updated.
As a long time Java developer I've used many different IDEs, Text Editors, Visual Age for Java, Visual Cafe, JBuilder, Together, Eclipse and finally, for the past 4 years I've been using IntelliJ Ultimate, also tried VSCode with java but my lack of shortcut and mechanical memorization using it is a blocker for me by now.
What I've learned from all these tools? Actually it turns out the best IDE is the one you're more familiar with and know the shortcuts and tricks to speed up your craft, so pick any you would like and make sure to keep always learning it, there's always something else to learn that can improve your development experience, doesn't matter which tool you pick and this is naturally not limited to your IDE.
Being a developer is learning a bit every day. And it's awesome.
10 Apache Hadoop tutorials, books, and courses for Java and Web developers
Introduction to ObjectMappers: using Jackson in the wild
Bruno Oliveira -
10 Java security best practices
Brian Vermeer 🧑🏼🎓🧑🏼💻 -
Top 10 Free Books and Courses to learn Data Structure and Algorithms in 2020