For our second Mini-Session, we have something extra special planned for you. Vlad Mihalcea will be hosting a 2-hour workshop on bridging the gap between Java developers and database programming. JOTB 2020 ticket holders receive a 20% discount when registering for this workshop. We will also be hosting three 20-minute talks. Hope to see you all there!
CEO at Hypersistence
Senior Backend Engineer at Netlify
Developer Advocate at Hazelcast
Technology Analyst at Goldman Sachs
17:00 to 19:00 The Best Way to Fetch Data with Java Persistence and Hibernate Workshop by Vlad Mihalcea
Most often, Java developers are very skilled when it comes to programming languages, design patterns, frameworks and everything that's related to their programming language of choice. However, the database is still uncharted territory, usually treated as a black box that we throw queries at and expect it to respond in no time. With this workshop, Vlad wants to get Java developers to know more about RDBMS so that they can design their application data access layer accordingly. After attending this workshop, you'll know all sorts of tips that you can readily apply to your current enterprise project.
- Statement fetching for Oracle, SQL Server, PostgreSQL and MySQL
- SQL pagination
- DTO vs entity queries
- The best way to fetch hierarchical data
- How and when to fetch JPA entities
- Fetching by natural id
- Association fetching best practices
- EAGER vs. LAZY fetching
- The best way to solve the LazyInitializationException
- How to fix the N+1 query issue
- The best way to fetch multiple JPA collections
- Why you should avoid the Open-Session in View Anti Pattern
- JPA 2.2 Stream support
- How to provision the Hibernate query plan cache for best performance
18:00 to 18:30 Databases: Scaling, Sharding and Querying by Jinal Parikh
As we shift towards data-intensive applications, making our database scalable becomes important. And with the various ways in which this can be done- things can get tricky!
This talk discusses techniques of scaling, what sharding is, the key design choices and technical challenges associated with sharding, and how we can execute queries on a sharded database -be it SQL or NoSQL.
You'll learn that with proper application analysis, and taking the right decisions- every application can scale.
18:40 to 19:10 Your Own Kubernetes Operator: Not Only in Go by Nicolas Fränkel
In Kubernetes, operators allow the API to be extended to your heart content. If one task requires too much YAML, it’s easy to create an operator to take care of the repetitive cruft, and only require a minimum amount of YAML.
On the other hand, since its beginnings, the Go language has been advertised as closer to the hardware, and is now ubiquitous in low-level programming. Kubernetes has been rewritten from Java to Go, and its whole ecosystem revolves around Go. For that reason, It’s only natural that Kubernetes provides a Go-based framework to create your own operator. While it makes sense, it requires organizations willing to go down this road to have Go developers, and/or train their teams in Go. While perfectly acceptable, this is not the only option. In fact, since Kubernetes is based on REST, why settle for Go and not use your own favourite language?
In this talk, Nicolas will describe what an operator is, how they work, how to design one, and finally demo a Java-based operator that is as good as a Go one.
19:20 to 19:40 Putting The Engineer in AI by Aarushi Kansal
When companies decide to adopt AI or machine learning-based products, there is a constant divide between data scientists and engineers. Both groups of people have different sets of concerns and often this can lead to miscommunication and failed projects. This talk briefly introduces all the different components that are required to successfully build, deploy, test and improve these systems. Aarushi will discuss the aspects from both a data scientist's point of view and an engineer's point of view and how to blend the two different fields together.