Filter
Exclude
Time range
-
Near
Today I learned why real-time collaboration at scale is much harder than it looks. While reading about Canva's architecture, I came across RSocket and two concepts that stood out: β€’ Multiplexing β€” multiple logical channels over a single connection, reducing connection overhead.
2
1
62
Java Development Roadmap (Complete Guide) PHASE 1: JAVA FUNDAMENTALS β”œβ”€β”€ Core Java Basics β”‚ β”œβ”€β”€ JDK, JRE, JVM architecture β”‚ β”œβ”€β”€ Data types and variables β”‚ β”œβ”€β”€ Operators and expressions β”‚ β”œβ”€β”€ Control flow (if-else, switch, loops) β”‚ └── Arrays and enhanced for loops β”œβ”€β”€ Object-Oriented Programming β”‚ β”œβ”€β”€ Classes and objects β”‚ β”œβ”€β”€ Constructors and this keyword β”‚ β”œβ”€β”€ Inheritance (extends, super) β”‚ β”œβ”€β”€ Polymorphism (overloading, overriding) β”‚ β”œβ”€β”€ Abstraction (abstract classes, interfaces) β”‚ └── Encapsulation (access modifiers) β”œβ”€β”€ Basic Java APIs β”‚ β”œβ”€β”€ String, StringBuilder, StringBuffer β”‚ β”œβ”€β”€ Wrapper classes and autoboxing β”‚ β”œβ”€β”€ Math, Random, Scanner classes β”‚ └── Date and Time API (java.time) PHASE 2: ADVANCED JAVA β”œβ”€β”€ Collections Framework β”‚ β”œβ”€β”€ List (ArrayList, LinkedList, Vector) β”‚ β”œβ”€β”€ Set (HashSet, LinkedHashSet, TreeSet) β”‚ β”œβ”€β”€ Queue (PriorityQueue, ArrayDeque) β”‚ β”œβ”€β”€ Map (HashMap, LinkedHashMap, TreeMap) β”‚ β”œβ”€β”€ Comparable vs Comparator β”‚ └── Stream operations and lambda expressions β”œβ”€β”€ Exception Handling β”‚ β”œβ”€β”€ Checked vs unchecked exceptions β”‚ β”œβ”€β”€ try-catch-finally blocks β”‚ β”œβ”€β”€ try-with-resources β”‚ └── Custom exceptions β”œβ”€β”€ Multithreading β”‚ β”œβ”€β”€ Thread class and Runnable interface β”‚ β”œβ”€β”€ Thread lifecycle and states β”‚ β”œβ”€β”€ Synchronization and locks β”‚ β”œβ”€β”€ ExecutorService and thread pools β”‚ β”œβ”€β”€ CompletableFuture for async programming β”‚ └── Concurrent collections β”œβ”€β”€ File I/O and NIO β”‚ β”œβ”€β”€ FileReader/FileWriter β”‚ β”œβ”€β”€ BufferedReader/BufferedWriter β”‚ β”œβ”€β”€ NIO package (Path, Files) β”‚ └── Serialization PHASE 3: DATABASE & JDBC β”œβ”€β”€ SQL Fundamentals β”‚ β”œβ”€β”€ CRUD operations β”‚ β”œβ”€β”€ Joins (INNER, LEFT, RIGHT, FULL) β”‚ β”œβ”€β”€ Group By and Having β”‚ β”œβ”€β”€ Subqueries and set operations β”‚ └── Indexes and performance β”œβ”€β”€ JDBC Programming β”‚ β”œβ”€β”€ DriverManager and Connection β”‚ β”œβ”€β”€ Statement, PreparedStatement β”‚ β”œβ”€β”€ ResultSet and RowSet β”‚ β”œβ”€β”€ Batch processing β”‚ β”œβ”€β”€ Transaction management β”‚ └── Connection pooling (HikariCP) β”œβ”€β”€ Database Design β”‚ β”œβ”€β”€ Normalization (1NF to 3NF) β”‚ β”œβ”€β”€ Primary/Foreign keys β”‚ └── Entity relationship modeling PHASE 4: ENTERPRISE JAVA (JAKARTA EE) β”œβ”€β”€ Servlet & JSP β”‚ β”œβ”€β”€ Servlet lifecycle β”‚ β”œβ”€β”€ RequestDispatcher and sendRedirect β”‚ β”œβ”€β”€ Session management β”‚ β”œβ”€β”€ Filters and Listeners β”‚ β”œβ”€β”€ JSP tags and EL β”‚ └── MVC architecture with Servlets/JSP β”œβ”€β”€ RESTful Web Services β”‚ β”œβ”€β”€ JAX-RS (Jersey, RESTEasy) β”‚ β”œβ”€β”€ @Path, @GET, @POST annotations β”‚ β”œβ”€β”€ JSON binding with Jackson β”‚ β”œβ”€β”€ Exception mappers β”‚ └── API documentation (Swagger/OpenAPI) β”œβ”€β”€ Enterprise Integration β”‚ β”œβ”€β”€ JMS with ActiveMQ β”‚ β”œβ”€β”€ EJB basics (stateless, stateful) β”‚ └── JTA transactions PHASE 5: SPRING FRAMEWORK β”œβ”€β”€ Spring Core β”‚ β”œβ”€β”€ IoC and Dependency Injection β”‚ β”œβ”€β”€ ApplicationContext and BeanFactory β”‚ β”œβ”€β”€ XML vs Java configuration β”‚ β”œβ”€β”€ Annotations (@Component, @Autowired) β”‚ β”œβ”€β”€ Bean scopes and lifecycle β”‚ └── Spring Expression Language (SpEL) β”œβ”€β”€ Spring MVC β”‚ β”œβ”€β”€ DispatcherServlet workflow β”‚ β”œβ”€β”€ Controllers (@Controller, @RestController) β”‚ β”œβ”€β”€ Request mapping and data binding β”‚ β”œβ”€β”€ Validation with Hibernate Validator β”‚ β”œβ”€β”€ File upload/download β”‚ └── Interceptors and exception handling β”œβ”€β”€ Spring Data JPA β”‚ β”œβ”€β”€ Hibernate ORM fundamentals β”‚ β”œβ”€β”€ Entity mappings (@OneToMany, @ManyToOne) β”‚ β”œβ”€β”€ Repository pattern (JpaRepository) β”‚ β”œβ”€β”€ Query methods and @Query β”‚ β”œβ”€β”€ Pagination and sorting β”‚ └── Auditing and soft deletes β”œβ”€β”€ Spring Security β”‚ β”œβ”€β”€ Authentication and Authorization β”‚ β”œβ”€β”€ UserDetailsService and JWT β”‚ β”œβ”€β”€ OAuth2 and SSO integration β”‚ β”œβ”€β”€ Method-level security β”‚ └── CSRF and CORS configuration PHASE 6: SPRING BOOT & MICROSERVICES β”œβ”€β”€ Spring Boot Fundamentals β”‚ β”œβ”€β”€ Auto-configuration β”‚ β”œβ”€β”€ Starters and dependencies β”‚ β”œβ”€β”€ application.properties/yml β”‚ β”œβ”€β”€ Profiles and environment-specific config β”‚ β”œβ”€β”€ Actuator endpoints β”‚ └── Spring Boot DevTools β”œβ”€β”€ Microservices Architecture β”‚ β”œβ”€β”€ Spring Cloud ecosystem β”‚ β”œβ”€β”€ Service discovery (Eureka) β”‚ β”œβ”€β”€ API Gateway (Spring Cloud Gateway) β”‚ β”œβ”€β”€ Circuit breaker (Resilience4j) β”‚ β”œβ”€β”€ Distributed tracing (Sleuth Zipkin) β”‚ └── Configuration server (Spring Cloud Config) β”œβ”€β”€ Communication Protocols β”‚ β”œβ”€β”€ RESTful services with WebClient β”‚ β”œβ”€β”€ gRPC with Protocol Buffers β”‚ β”œβ”€β”€ Apache Kafka for event-driven architecture β”‚ └── RabbitMQ with Spring AMQP PHASE 7: BUILD TOOLS & TESTING β”œβ”€β”€ Build Tools β”‚ β”œβ”€β”€ Maven (POM.xml, dependencies, plugins) β”‚ β”‚ β”œβ”€β”€ Project structure β”‚ β”‚ β”œβ”€β”€ Lifecycle phases β”‚ β”‚ └── Multi-module projects β”‚ β”œβ”€β”€ Gradle (build.gradle, tasks) β”‚ β”‚ β”œβ”€β”€ Groovy vs Kotlin DSL β”‚ β”‚ └── Dependency management β”œβ”€β”€ Testing β”‚ β”œβ”€β”€ Unit Testing with JUnit 5 β”‚ β”‚ β”œβ”€β”€ @Test, assertions β”‚ β”‚ β”œβ”€β”€ Parameterized tests β”‚ β”‚ └── Test lifecycle hooks β”‚ β”œβ”€β”€ Mocking with Mockito β”‚ β”‚ β”œβ”€β”€ @Mock, @InjectMocks β”‚ β”‚ └── When/Then patterns β”‚ β”œβ”€β”€ Integration Testing β”‚ β”‚ β”œβ”€β”€ @SpringBootTest β”‚ β”‚ β”œβ”€β”€ TestContainers for database testing β”‚ β”‚ └── @DataJpaTest, @WebMvcTest β”‚ └── Performance Testing (JMeter, Gatling) PHASE 8: DEVOPS & DEPLOYMENT β”œβ”€β”€ Containerization β”‚ β”œβ”€β”€ Docker for Java apps β”‚ β”‚ β”œβ”€β”€ Multi-stage Dockerfiles β”‚ β”‚ β”œβ”€β”€ JVM optimization in containers β”‚ β”‚ └── Docker Compose for local dev β”‚ β”œβ”€β”€ Kubernetes for Java microservices β”‚ β”‚ β”œβ”€β”€ Pod and Service definitions β”‚ β”‚ β”œβ”€β”€ ConfigMaps and Secrets β”‚ β”‚ └── Helm charts for Java apps β”œβ”€β”€ CI/CD Pipeline β”‚ β”œβ”€β”€ Jenkins with Java projects β”‚ β”œβ”€β”€ GitHub Actions for Spring Boot β”‚ β”œβ”€β”€ GitLab CI with Maven/Gradle β”‚ └── SonarQube for code quality β”œβ”€β”€ Cloud Deployment β”‚ β”œβ”€β”€ AWS (Elastic Beanstalk, ECS, EKS) β”‚ β”œβ”€β”€ Azure (App Service, AKS) β”‚ β”œβ”€β”€ Google Cloud (App Engine, GKE) β”‚ └── Heroku / Railway / Render PHASE 9: PERFORMANCE & SECURITY β”œβ”€β”€ Performance Optimization β”‚ β”œβ”€β”€ JVM tuning (Heap, GC algorithms) β”‚ β”œβ”€β”€ Profiling tools (JProfiler, VisualVM) β”‚ β”œβ”€β”€ Database query optimization β”‚ β”œβ”€β”€ Caching (Spring Cache, Redis, Hazelcast) β”‚ └── Connection pooling tuning β”œβ”€β”€ Security Best Practices β”‚ β”œβ”€β”€ OWASP Top 10 for Java β”‚ β”œβ”€β”€ Input validation and sanitization β”‚ β”œβ”€β”€ SQL/NoSQL injection prevention β”‚ β”œβ”€β”€ Secure coding guidelines β”‚ β”œβ”€β”€ Dependency scanning (OWASP Dependency Check) β”‚ └── Secret management (Vault, AWS Secrets Manager) PHASE 10: MODERN JAVA & TRENDS β”œβ”€β”€ Java 8 Features β”‚ β”œβ”€β”€ Lambda expressions and Streams β”‚ β”œβ”€β”€ Optional class β”‚ β”œβ”€β”€ Default and static methods in interfaces β”‚ β”œβ”€β”€ New Date/Time API β”‚ └── CompletableFuture β”œβ”€β”€ Java 9-21 Features β”‚ β”œβ”€β”€ Module system (Project Jigsaw) β”‚ β”œβ”€β”€ Local variable type inference (var) β”‚ β”œβ”€β”€ Switch expressions β”‚ β”œβ”€β”€ Text blocks β”‚ β”œβ”€β”€ Records and sealed classes β”‚ β”œβ”€β”€ Pattern matching β”‚ β”œβ”€β”€ Virtual threads (Project Loom) β”‚ └── Foreign Function & Memory API β”œβ”€β”€ Reactive Programming β”‚ β”œβ”€β”€ Project Reactor (Mono, Flux) β”‚ β”œβ”€β”€ Spring WebFlux β”‚ └── RSocket protocol SPECIALIZED DOMAINS β”œβ”€β”€ Big Data Java β”‚ β”œβ”€β”€ Apache Spark with Java β”‚ β”œβ”€β”€ Apache Flink β”‚ └── Hadoop ecosystem β”œβ”€β”€ Android Development β”‚ β”œβ”€β”€ Android SDK with Java β”‚ └── Kotlin interop β”œβ”€β”€ FinTech/Enterprise β”‚ β”œβ”€β”€ High-performance Java β”‚ β”œβ”€β”€ Low-latency systems β”‚ └── Financial messaging (FIX protocol) PROJECTS TO BUILD 1. Beginner: Library Management System (Core Java File I/O) 2. Intermediate: E-commerce API (Spring Boot JPA Security) 3. Intermediate: Task Management App with JWT authentication 4. Advanced: Microservices-based Banking System (Spring Cloud, Kafka) 5. Advanced: Real-time Chat Application (WebSocket STOMP) 6. Expert: Stock Trading Platform (low-latency, reactive) 7. Expert: Scalable Social Media Backend (microservices, Redis) LEARNING RESOURCES β”œβ”€β”€ Official Documentation β”‚ β”œβ”€β”€ docs.oracle.com/en/java/ β”‚ β”œβ”€β”€ spring.io/projects/spring-bo… β”‚ └── hibernate.org/orm/documentat… β”œβ”€β”€ Books β”‚ β”œβ”€β”€ "Effective Java" - Joshua Bloch β”‚ β”œβ”€β”€ "Java Concurrency in Practice" β”‚ β”œβ”€β”€ "Spring in Action" β”‚ └── "Clean Code" - Robert C. Martin β”œβ”€β”€ Practice Platforms β”‚ β”œβ”€β”€ LeetCode (Java problems) β”‚ β”œβ”€β”€ HackerRank Java track β”‚ β”œβ”€β”€ CodeWars β”‚ └── Spring Initializr (start.spring.io) RECOMMENDED CERTIFICATIONS β”œβ”€β”€ Oracle Certified Professional: Java SE Programmer β”œβ”€β”€ Spring Professional Certification β”œβ”€β”€ AWS Certified Developer └── Azure Java Developer πŸ“š RECOMMENDED EBOOK For comprehensive Java and its interview preparation and in-depth concepts, check out: πŸ‘‰Grab the Java Handbook: codewithdhanian.gumroad.com/…)** This ebook covers: - Core Java fundamentals with detailed explanations - Advanced Java concepts (Multithreading, Collections) - Spring/Spring Boot interview questions - Microservices design patterns - Real-world scenarios and coding problems - 300 frequently asked interview questions - Code examples and best practices - System design for Java developers Estimated Time: 6-12 months for core proficiency, 1-2 years for enterprise readiness Key Principle: Write code daily, understand the "why" behind features, master debugging Progression Strategy: 1. Months 1-3: Core Java OOP concepts 2. Months 4-6: Advanced Java JDBC Basic Servlets 3. Months 7-12: Spring Framework Spring Boot 4. Year 2: Microservices Cloud Advanced topics 5. Year 3 : Specialization Architecture Java Developer Mindset: - Strong typing catches bugs early - JVM is your friend - understand it - Enterprise patterns matter - Backward compatibility is sacred - Verbose can be clear - prioritize readability - Always consider garbage collection and memory - Design for interfaces, not implementations Daily Learning Routine: - Morning: Read Java/Spring documentation or articles - Afternoon: Code implementation - Evening: Code review and optimization - Weekend: Build side projects and experiment Community to Follow: - r/java, r/springsource - Follow @e_opore on X - Java Champions on Twitter - Spring Blog - InfoQ Java section Remember: Java is everywhere - from Android phones to enterprise servers to big data systems. Master the fundamentals first, then explore specialized domains. The ecosystem is vast but well-documented. Build projects that solve real problems, and always keep learning as Java evolves every 6 months now!
9
118
623
20,891
16 Jul 2025
Spring Boot WebFlux RSocket – Reactive Communication Over TCP: For real-time, low-latency systems, HTTP isn’t always enough. RSocket enables multiplexed, async, backpressured communication over WebSocket or TCP. Spring Boot WebFlux integrates directly with RSocket, allowing reactive request/response, streams, fire-and-forget, etc. It’s ideal for game backends, financial feeds, or chat apps.
1
28
169
8,097
Reactive Programming in Spring Boot Java πŸ‘‰ - Spring WebFlux (Alternative to Spring MVC) - Mono vs Flux - Backpressure handling - Reactive MongoDB / Cassandra / Kafka - Integration with RSocket Spring WebFlux and reactive programming (Mono/Flux) are designed to handle asynchronous, non-blocking, and event-driven systems with high concurrency and low latency.
2
12
85
6,477
Replying to @TrisH0x2A
rSocket and gRPC anyone? Also check how http3 retains connection.
3
3,838
rsocket-kotlin 0.20.0 is here! > Migrated to kotlinx-io and ktor 3.x - up to 10x faster > New transports API - consistent DSL > QUIC support via Netty - highly experimental > Wasm and all native targets support github.com/rsocket/rsocket-k… And a bit about the future in the thread🧡
1
5
29
1,434
Today’s focus πŸ”₯ yarn add rsocket-core rsocket-websocket-client Time to get my hands dirty and dive in.
2
23
1,230
12 Jan 2025
Replying to @asm0di0
Meta also created or worked on Rsocket, and GraphQL, two of my favorite OSs Projects
1
3
301
I experienced using Kotlin in backend projects that truly used its capabilities, using Ktor, Ktor Client, coroutines with proper testing, flow, RSocket, and other tools, and after that, I can't imagine going back to Java. I believe any developer with such experience would not willfully choose Java for a greenfield project.
1
5
1,239
Replying to @Hixon101
I would say it's alive, but very niche. Community around it is rather small as currently there are no companies which bake it :( RSocket is much more than just reactive streams. You can read my big thread about it:

Let’s talk a bit about @RSocketIO as a protocol, not about rsocket-kotlin rsocket.io headline states: Application protocol providing Reactive Streams semantics But RSocket isn’t only about Reactive Streams, I would even say that it’s just one of many shiny features.
3
225
Replying to @why_oleg
RSocket is a great tool. Maybe it is time to get greater community support for it. @oleg_nenashev, maybe some insights on how to do it better?
1
5
353
Hey Kotlin developers! Would anyone be interested in taking over / helping with the maintenance of rsocket-kotlin? :) github.com/rsocket/rsocket-k… Lately, I just can’t seem to find time for it at all… By the end of the year (or in January), I plan to do a release with kotlinx-io ktor 3.0 QUIC. Beyond that, it’s hard to say when I’ll be able to contribute further, but I’ll do my best… Please contact me if you are interested in Slack/X/e-mail or anywhere else! P.S. I really have a lot of ideas on features/improvements there but I just don’t have enough time to implement them. On current moment my other open source projects have bigger priority for me (and probably for Kotlin community)
4
7
60
6,821
If you are a backend developer, you must be familiar with these protocols Don't have to know them all, just know what is required 1. HTTP/HTTPS: For web and REST APIs; used in websites, e-commerce platforms, and blogs. 2. WebSocket: For real-time communication; used in chat apps, multiplayer games, and live dashboards. 3. gRPC: For efficient inter-service communication; used in microservices and IoT applications. 4. GraphQL: For dynamic data queries; used in modern web/mobile apps needing specific data fetching. 5. MQTT: For lightweight messaging; used in IoT devices and real-time telemetry systems. 6. AMQP: For reliable message delivery; used in distributed systems and task queues. 7. REST: For simple API communication; used in CRUD-based apps and backend services. 8. SOAP: For structured enterprise communication; used in financial and enterprise-grade systems. 9. DNS: For domain resolution; used in load balancing and routing internet traffic. 10. FTP/SFTP: For secure file transfers; used in server backups and data migration. 11. RSocket: For reactive streams; used in streaming platforms and real-time systems. 12. TCP/IP: For reliable data transfer; used in networking tools and low-level communication.
1
11
943
Also when you define a backend application in a framework like Ktor, that is coroutines-first, if an HTTP connection is lost, call gets immediately cancelled, the same if WebSocket or RSocket connection is lost.
2
5
603
Also when you define a backend application in a framework like Ktor, that is coroutines-first, if an HTTP connection is lost, call gets immediately cancelled, the same if WebSocket or RSocket connection is lost.
1
3
328
🎯 Discover how RSocket enables real-time, low-latency communication in Spring, ideal for modern web applications. #SpringFramework #RSocket #ReactiveJava #RealTime buff.ly/3IRqX4X

4
11
1,860
⚑ Build real-time, reactive systems with RSocket in Springβ€”from request-response to fire-and-forget! #RSocket #SpringBoot #ReactiveProgramming #JavaDev buff.ly/3IRqX4X

3
10
1,457
πŸ”Œ Learn how RSocket changes the game for building reactive, event-driven architectures in Spring. #SpringBoot #ReactiveJava #RSocket #JavaDevelopment #SpringSecurity buff.ly/3IRqX4X

2
5
1,261
πŸ”„ From request-response to streamingβ€”take your Spring apps to the next level with RSocket. #SpringFramework #ReactiveSystems #RSocket #JavaTips #Microservices buff.ly/3IRqX4X

2
12
1,309