2024-07-10 –, Method (1.5)
A year ago we demoed a Julia-based web application to 50 concurrent users - it failed catastrophically. We launched a team-wide effort to find the root cause of it. Was it Julia or was it our code? Turns out, it was both.
Julia based web services are nothing new, but running and scaling them in production was surely going to cause us some issues. After 6 months of investigation and fixes we’re ready to share results and the knowledge acquired. In this talk we’re going to discuss:
- Tools & Observability primitives to identify bottlenecks and root causes
- Findings and mitigations for the issues that included:
- Blocking/sync code paths
- Memory Leaks/GC performance
- HTTPS
- Common performance pitfalls
- Database performance (connection pooling & non-blocking approach)
- HTTP.jl performance analysis & pitfalls [1]
- How to structure HTTP services with performance in mind
- Beyond HTTP.jl [2]
[1] https://discourse.julialang.org/t/julia-can-be-better-at-doing-web-a-benchmark/103300
[2] https://github.com/nginx/unit, https://github.com/JuliaWeb/HTTP2.jl and other up & coming approaches
Software Engineer @JuliaHub, Cluster Team
Misc at Pluto.jl, Software engineering JuliaHub (Ask AI, Pluto integrations, Julia Web applications & JavaScript). In the past, I've been a software engineer, a business analyst, a consultant, a data entry intern, a waiter and a sailor. Very concerned about climate change, trying to do something about it (algae bioreactors in the making).