Modern Java microservices in the Cloud!
summary
Revolut defaults to Java and intentionally keeps stacks small: no magic frameworks, Spark/considering Javalin or Helidon for HTTP, Postgres for 99% of storage, Flyway for migrations, jOOQ-generated SQL, Testcontainers for functional tests, New Relic for monitoring, Kubernetes and CI/CD for delivery. Engineering patterns include constructor injection, immutability and records, client libraries for RPC, an event store on Postgres, a tiny Alpha library for transaction boundaries, and a Watchman triage process — practices that reduce calcification and keep hundreds of services maintainable in production.
AI-written summary · about
chapters (19)
- 0:00Modern Java microservices intro
- 2:29Defining modern Java microservices
- 9:55Avoiding backwards tech choices
- 12:46Legacy system calcification
- 17:22Simplicity in modern frameworks
- 20:08Preventing complexity per commit
- 22:33Revolut’s no-magic principle
- 24:01Testing for long-term stability
- 26:50Constructor injection patterns
- 31:49CQRS and event sourcing
- 32:52Flyway migrations with test containers
- 34:38Legacy inevitability solutions
- 37:51Architecture as shared understanding
- 41:01Documenting with C4 and PlantUML
- 42:46Internal open source ownership
- 43:48Service interaction patterns
- 45:35Kubernetes delivery trade-offs
- 47:20Optimizing software resilience
- 48:36Q&A
related talks
46mThe Java Cloud-Native Stack for Microservices and Serverless Architecture
46mModern Java App Development in the Cloud
40mHigh-Performance Java-Cloud-Native Apps & Microservices
51mReal World Lean Java Practices, Patterns, Hacks, and Workarounds
47mFoundations of Modern #Java Server Apps
49mThe Java Cloud-Native Stack for Microservices and Serverless Architecture
49mSupersonic subatomic Enterprise Java from the ground up
45m12-Factor, Cloud Native Enterprise Java Applications
