Return to site

Spring Reactive Neo4j

broken image
Neo4j
9:00 - 9:10

Welcome

9:10 - 9:45

Logging in Spring Boot with the Elastic Stack

Philipp Krenn - Elastic

Let's look at the good parts of logging:
- How can you bring logging to production quickly?
- How does this work with Spring Boot in as a practical example?
- Do you want to add tracing and make the most of the combination?
- How do you manage the data that you are collecting?

9:45 - 9:55

Break

9:55 - 10:30

Spring On Kubernetes

Dave Syer - VMware / Pivotal

Spring has always encouraged developers to leverage the technologies that best solves their business use cases. Kubernetes is emerging as a very popular platform for running cloud native applications, and Spring makes it quite easy to take advantage of all it has to offer in order to run your applications on this powerful platform. Join Dave Syer to get started running Spring apps on Kubernetes.

10:30 - 10:40

Break

10:40 - 11:15

AI on Spring: I love it when an OptaPlan comes together

Geoffrey De Smet - Red Hat

Forget about Machine Learning. Planning optimization is the most profitable AI technology on this planet.
The world is full of planning challenges, such as vehicle routing problems, maintenance scheduling and employee rostering. Find the quickest routes to visit n locations with k vehicles. Assign n shifts to k employees, taking into account skills and avaiability. Few people realize how much AI algorithms improve those solutions. For example, when a big telco started using OptaPlanner to plan their fleet of tens of thousands of technicians, they expected a driving time reduction of 1-2%. It was 25%. That saves them hundreds of millions of dollars and millions of kilograms of CO² emissions, every year.
In this session I'll show you how to code a highschool timetabling application from scratch, with Spring Boot and OptaPlanner. It ‘ll generate the perfect lesson schedule, for both students and teachers.

11:15 - 11:30

Spring Quizz I

11:30 - 12:05

RSocket - Future Reactive Application Protocol

Oleh Dokuka - Netifi

Are you making microservices/cloud-native applications? Are you frustrated by slow REST? Tired of unreliable gRPC? Do you need faster client-server communication, but don't want to invent your own WebSocket-protocol? RSocket is a new application-level protocol capable of reactive streaming that can be used to simplify the way enterprises build and operate cloud-native applications. It enables traditional enterprise developers to build sophisticated, cloud-native, distributed applications.
RSocket is transport agnostic and can be used on top of any transport protocol like TCP/Aeron or even on top of HTTP/2 or WebSocket. RSocket has various interaction models so it can satisfy the needs of today applications. The protocol is agnostic when it comes to programming languages, message formats, and API architecture. Any developer can use RSocket to meet all business requirements. RSocket simplifies life for any startup or enterprise, whether it is used in a protocol implementation like Java, C#, C++, JavaScript or deployed in an RPC framework.
In this presentation, we are going to cover all these cases and concepts and answer why, when and how you can start using RSocket today and how high traffic giants like Facebook, Netflix and others have adopted RSocket.

12:05 - 12:15

Break

12:15 - 12:50

Chaos Monkey for Spring Boot

John Fletcher & Manuel Wessner - Codecentric

Everything you want to know about the useful and popular chaos engineering tool Chaos Monkey for Spring Boot (CMSB) from two of its maintainers. Featuring:
- How to easily get started with your first Chaos Experiments.
- How to integrate CMSB with automation tools like Chaos Toolkit in order to run tests in your build chain.
- What to consider when running chaos experiments on a reactive application.
- An overview of the history, the changes in the latest version, and the roadmap.
- Who should get involved in the project, and how.
The talk will primarily consist of live coding.

12:50 - 13:00

Break

13:00 - 13:35

Action plan to become a Spring Certified Professional

Iuliana Cosmina - Cloudsoft

13:35 - 13:45

Break

13:45 - 14:20

Spring: your next Java micro-framework

Alexey Nesterov - VMware / Pivotal

Quite often Spring is opposed to so called 'micro' frameworks in Java world. 'Micro' means different things to different people, but usually it implies reduced runtime footprint and code simplicity. In this talk, I'll show that you don't have to abandon your favourite Spring Boot to a new and shiny thing to achieve the same result. Also I'll show how to find the balance between simplicity and productivity, improve runtime efficiency, e.g. image size, memory footprint, and startup time when using Spring Boot.

14:20 - 14:35

Spring Quizz II

14:35 - 15:10

Bringing together OpenAPI 3 and Spring Boot

Badr Nasslahsen - BNP Paribas

Since July 2017, there are a lot of industries adopting OpenAPI 3 specification to discover and understand the capabilities of a REST API without the need to have access to source code.
springdoc-openapi project, accelerates the generation of OpenAPI documentation for spring boot projects.
IN this talk, will deep dive into springdoc-openapi main functionalities:
- Introduction to OpenAPI 3 and swagger2
- What is the purpose of springdoc-openapi?
- How do we migrate to OpenAPI 3?
- Integration with spring-web and spring-webflux
- Integration of JSR 303 Bean Validation with OpenAPI 3
- Integration with actuator
- Global Exception Handling Using Controller Advice
- Integration with spring- HATEOAS and Pageable
- Integration with spring-security and OAuth 2.0
- Multiple OpenAPI description on the same application and groups support
- Integration with spring-cloud-gateway in a microservices architecture
- Integration with Kotlin
- Generation of the OpenAPI 3 documentation in offline mode

15:10 - 15:20

Break

15:20 - 15:55

Extending Spring Boot for Cloud Deployments

Ray Tsang - Google
Eddú Meléndez - Nubank

Spring Boot and Spring Cloud offers unprecedented abstraction layer that offers solutions to all sorts of common concerns - security, data access, messaging, configuration, caching, distributed tracing, and more. All of these layers also provide extension points to integrate with different underlying implementations. These extension points are crucial when developing cloud native application. For example, when developing a cloud native application that needs to use cloud provider's messaging system, you may be able to avoid using implementation-specific APIs, instead, use a higher level abstraction such as Spring Integration. In this talk, we'll what these extensions points are, how to build an extension, and how we realize the benefits in the Spring Cloud GCP project.

15:55 - 16:05

Break

16:05 - 16:40

What the hell, it's 2020 and you're writing a new Object mapping framework? Introducing Neo4j SDN/RX

Michael Simons - Neo4j

What do you get when you bring two people together having a lot of experience as consultants and developers working with object mapping frameworks?
Both of them having enjoyed the simplicity and advanced features that an object mapper brings in regards of
* Mapping
* CRUD operations
* Caching
and both have also suffered from
* Mapping
* Caching
* Bad queries
The Neo4j-Object-Graph-Mapper (Neo4j-OGM) was heavily influence by Hibernate-ORM (Object relational mapping) and that's not a bad thing. Hibernate-ORM addresses a lot of things that make a developers life hard. It originates from a time where databases have been seen as second-class-citizens in a Java applications.
Both me, Michael Simons, and also my colleague Gerrit Meier see the value of working directly with a database, regardless whether it's a graph or a relational database.
At Neo4j, we started a big cross team effort to provide reactive database access to Neo4j, the world's leading graph database, in 2019: We wanted to have an reactive stack, right from the query execution engine, to transport layer, the driver and then at least having one premier data abstraction layer.
The later gave us the opportunity to codify our experience and also our preferences in working with databases in the form of SDN/RX, a new Spring Data Module for Neo4j.
We wanted:
* to attribute the fact that there's no silver bullet in terms of working with databases
* to have composable modules for the Spring eco system, like direct access to Neo4j through the official driver but also integration with Spring's application level transactions
* to have Spring Data powered mapping with all the benefits it brings: Support for immutable classes (Kotlin data classes, Java with a bit of boilerplate or JDK 14 records)
* to cater for larger domains with tons of domain objects without having repositories for each of them
* to have support for reactive infrastructure
In this short introduction I'll show you the building blocks about what the Spring Data Team at Neo4j created based on the experience of working with different database technologies from within Spring Boot.
We will cover starters, auto configuration and of course, all the aspects described above.

16:40 - 16:50

Jamon Battle - Final Round

Have you ever built a cloud microservice that throws jamon at other microservices? Well at Spring I/O Bridge you'll be able to compete with others for the best Battle Jamon algorithm. We will help you deploy your jamon bot on Google Cloud Run to compete for up to $500 in Google Cloud credits. Join the #battle-jamon Discord channel to know more!

Spring Reactive Neo4j Vs

Spring Reactive Neo4j
Neo4j

  1. Spring Reactive Neo4j Vs
  2. Neo4j Spring Boot

Welcome

9:00 - 9:10

Welcome

9:10 - 9:45

Logging in Spring Boot with the Elastic Stack

Philipp Krenn - Elastic

Let's look at the good parts of logging:
- How can you bring logging to production quickly?
- How does this work with Spring Boot in as a practical example?
- Do you want to add tracing and make the most of the combination?
- How do you manage the data that you are collecting?

9:45 - 9:55

Break

9:55 - 10:30

Spring On Kubernetes

Dave Syer - VMware / Pivotal

Spring has always encouraged developers to leverage the technologies that best solves their business use cases. Kubernetes is emerging as a very popular platform for running cloud native applications, and Spring makes it quite easy to take advantage of all it has to offer in order to run your applications on this powerful platform. Join Dave Syer to get started running Spring apps on Kubernetes.

10:30 - 10:40

Break

10:40 - 11:15

AI on Spring: I love it when an OptaPlan comes together

Geoffrey De Smet - Red Hat

Forget about Machine Learning. Planning optimization is the most profitable AI technology on this planet.
The world is full of planning challenges, such as vehicle routing problems, maintenance scheduling and employee rostering. Find the quickest routes to visit n locations with k vehicles. Assign n shifts to k employees, taking into account skills and avaiability. Few people realize how much AI algorithms improve those solutions. For example, when a big telco started using OptaPlanner to plan their fleet of tens of thousands of technicians, they expected a driving time reduction of 1-2%. It was 25%. That saves them hundreds of millions of dollars and millions of kilograms of CO² emissions, every year.
In this session I'll show you how to code a highschool timetabling application from scratch, with Spring Boot and OptaPlanner. It ‘ll generate the perfect lesson schedule, for both students and teachers.

11:15 - 11:30

Spring Quizz I

11:30 - 12:05

RSocket - Future Reactive Application Protocol

Oleh Dokuka - Netifi

Are you making microservices/cloud-native applications? Are you frustrated by slow REST? Tired of unreliable gRPC? Do you need faster client-server communication, but don't want to invent your own WebSocket-protocol? RSocket is a new application-level protocol capable of reactive streaming that can be used to simplify the way enterprises build and operate cloud-native applications. It enables traditional enterprise developers to build sophisticated, cloud-native, distributed applications.
RSocket is transport agnostic and can be used on top of any transport protocol like TCP/Aeron or even on top of HTTP/2 or WebSocket. RSocket has various interaction models so it can satisfy the needs of today applications. The protocol is agnostic when it comes to programming languages, message formats, and API architecture. Any developer can use RSocket to meet all business requirements. RSocket simplifies life for any startup or enterprise, whether it is used in a protocol implementation like Java, C#, C++, JavaScript or deployed in an RPC framework.
In this presentation, we are going to cover all these cases and concepts and answer why, when and how you can start using RSocket today and how high traffic giants like Facebook, Netflix and others have adopted RSocket.

12:05 - 12:15

Break

12:15 - 12:50

Chaos Monkey for Spring Boot

John Fletcher & Manuel Wessner - Codecentric

Everything you want to know about the useful and popular chaos engineering tool Chaos Monkey for Spring Boot (CMSB) from two of its maintainers. Featuring:
- How to easily get started with your first Chaos Experiments.
- How to integrate CMSB with automation tools like Chaos Toolkit in order to run tests in your build chain.
- What to consider when running chaos experiments on a reactive application.
- An overview of the history, the changes in the latest version, and the roadmap.
- Who should get involved in the project, and how.
The talk will primarily consist of live coding.

12:50 - 13:00

Break

13:00 - 13:35

Action plan to become a Spring Certified Professional

Iuliana Cosmina - Cloudsoft

13:35 - 13:45

Break

13:45 - 14:20

Spring: your next Java micro-framework

Alexey Nesterov - VMware / Pivotal

Quite often Spring is opposed to so called 'micro' frameworks in Java world. 'Micro' means different things to different people, but usually it implies reduced runtime footprint and code simplicity. In this talk, I'll show that you don't have to abandon your favourite Spring Boot to a new and shiny thing to achieve the same result. Also I'll show how to find the balance between simplicity and productivity, improve runtime efficiency, e.g. image size, memory footprint, and startup time when using Spring Boot.

14:20 - 14:35

Spring Quizz II

14:35 - 15:10

Bringing together OpenAPI 3 and Spring Boot

Badr Nasslahsen - BNP Paribas

Since July 2017, there are a lot of industries adopting OpenAPI 3 specification to discover and understand the capabilities of a REST API without the need to have access to source code.
springdoc-openapi project, accelerates the generation of OpenAPI documentation for spring boot projects.
IN this talk, will deep dive into springdoc-openapi main functionalities:
- Introduction to OpenAPI 3 and swagger2
- What is the purpose of springdoc-openapi?
- How do we migrate to OpenAPI 3?
- Integration with spring-web and spring-webflux
- Integration of JSR 303 Bean Validation with OpenAPI 3
- Integration with actuator
- Global Exception Handling Using Controller Advice
- Integration with spring- HATEOAS and Pageable
- Integration with spring-security and OAuth 2.0
- Multiple OpenAPI description on the same application and groups support
- Integration with spring-cloud-gateway in a microservices architecture
- Integration with Kotlin
- Generation of the OpenAPI 3 documentation in offline mode

15:10 - 15:20

Break

15:20 - 15:55

Extending Spring Boot for Cloud Deployments

Ray Tsang - Google
Eddú Meléndez - Nubank

Spring Boot and Spring Cloud offers unprecedented abstraction layer that offers solutions to all sorts of common concerns - security, data access, messaging, configuration, caching, distributed tracing, and more. All of these layers also provide extension points to integrate with different underlying implementations. These extension points are crucial when developing cloud native application. For example, when developing a cloud native application that needs to use cloud provider's messaging system, you may be able to avoid using implementation-specific APIs, instead, use a higher level abstraction such as Spring Integration. In this talk, we'll what these extensions points are, how to build an extension, and how we realize the benefits in the Spring Cloud GCP project.

15:55 - 16:05

Break

16:05 - 16:40

What the hell, it's 2020 and you're writing a new Object mapping framework? Introducing Neo4j SDN/RX

Michael Simons - Neo4j

What do you get when you bring two people together having a lot of experience as consultants and developers working with object mapping frameworks?
Both of them having enjoyed the simplicity and advanced features that an object mapper brings in regards of
* Mapping
* CRUD operations
* Caching
and both have also suffered from
* Mapping
* Caching
* Bad queries
The Neo4j-Object-Graph-Mapper (Neo4j-OGM) was heavily influence by Hibernate-ORM (Object relational mapping) and that's not a bad thing. Hibernate-ORM addresses a lot of things that make a developers life hard. It originates from a time where databases have been seen as second-class-citizens in a Java applications.
Both me, Michael Simons, and also my colleague Gerrit Meier see the value of working directly with a database, regardless whether it's a graph or a relational database.
At Neo4j, we started a big cross team effort to provide reactive database access to Neo4j, the world's leading graph database, in 2019: We wanted to have an reactive stack, right from the query execution engine, to transport layer, the driver and then at least having one premier data abstraction layer.
The later gave us the opportunity to codify our experience and also our preferences in working with databases in the form of SDN/RX, a new Spring Data Module for Neo4j.
We wanted:
* to attribute the fact that there's no silver bullet in terms of working with databases
* to have composable modules for the Spring eco system, like direct access to Neo4j through the official driver but also integration with Spring's application level transactions
* to have Spring Data powered mapping with all the benefits it brings: Support for immutable classes (Kotlin data classes, Java with a bit of boilerplate or JDK 14 records)
* to cater for larger domains with tons of domain objects without having repositories for each of them
* to have support for reactive infrastructure
In this short introduction I'll show you the building blocks about what the Spring Data Team at Neo4j created based on the experience of working with different database technologies from within Spring Boot.
We will cover starters, auto configuration and of course, all the aspects described above.

16:40 - 16:50

Jamon Battle - Final Round

Have you ever built a cloud microservice that throws jamon at other microservices? Well at Spring I/O Bridge you'll be able to compete with others for the best Battle Jamon algorithm. We will help you deploy your jamon bot on Google Cloud Run to compete for up to $500 in Google Cloud credits. Join the #battle-jamon Discord channel to know more!

Spring Reactive Neo4j Vs

Neo4j Spring Boot

While Spring Data Neo4j uses the same annotations for auditing as all Spring Data modules do, auditing support itself has to be explicitly enabled. To enable Spring Data Neo4j's auditing, use @EnableNeo4jAuditing on a @Configuration-class as shown in Neo4jConfiguration.java. Spring Data Neo4j is focused on storing data in Neo4j. But it inherits functionality from the Spring Data Commons project, including the ability to derive queries. Essentially, you need not learn the query language of Neo4j. Apr 07, 2020 Neo4j officially supports drivers for.NET, Java, JavaScript, Go and Python. Thanks to the community, there are significantly more community drivers in addition to these. In this session we will.





broken image