Posts

Showing posts with the label Architecture

[Event] JManc 2025

Image
I had the opportunity to attend JManc again this year—and once more, it was fabulous. The sessions were organic, deeply technical, and full of insights shared by developers across different domains. Here's my wrap-up from the day, highlighting a few memorable sessions and conversations. 1 Tony Wilson, Manchester 30 Years of Java — Jim Gough’s Retrospective Jim Gough delivered a fantastic keynote on the evolution of Java over three decades. As a Java Champion, his perspective mixed historical insight with a touch of humor and lived experience. Here are some of the milestones he covered: Applets & Early UI: Java’s original fame came from applets—tiny applications that ran inside web browsers.  AWT & Swing: Early GUI development in Java involved the AWT toolkit, later replaced by the more versatile Swing. JavaFX: The modern Java UI framework that succeeded Swing. It was eventually removed from the JDK and spun out as an open-source project. While less commonly used in modern ...

Event: Comparing Native Java REST API Frameworks with Matt Raible

Image
Manchester Java Community hosted a meetup with a fantastic speaker Matt Raible in Infinity Works 's office. Matt compared the startup performance and memory usage of Spring Boot , Micronaut , Quarkus and Helidon frameworks. He built a REST API application secured by OAuth 2.0 and ran the application in Docker with the four frameworks respectively. His slides and related resources can be found at Comparing Native Java REST API Frameworks - Manchester JUG 2022 . Here is my thought after the talk: Java is still hugely popular and widely used ( Yay! ). The community should contribute to the language to encourage more younger generation to adopt it. Use SDKMAN to manage multiple JDK in a local computer Use HTTPie which is better than cURL for testing API Test OpenID Connect requests and debug responses with OpenID Connect debugger Build optimized Docker images for your Java applications with Jib Compare with startup time which does matter for Serverless Tak...

Designing Data-Intensive Applications

Image
Designing Data-Intensive Applications introduces diverse landscape of technologies of storing and processing data. It covers from fundamental concepts, distributed data and data processing. This book does not tell you what software or how to build a data related application. It rather talks about how data systems work and their design concerns. The book starts with non-functional requirements such as reliability, scalability and maintainability. Then it jumps data models which are associated with birth of NoSQL and ORM, thus query languages. The next chapter deeply dives into storage which is a common topics of traditional databases, e.g. Hash Indexes, Sorted String Tables, Log-Structured Merge-Trees, B-Trees. The topic is also extended to OLTP and OLAP, data warehouse. In the last chapter of the first section, it turns to topics of encoding formats such as JSON, XML and binary and dataflow services such as REST, SOAP and RPC. The second section is about distributed data. It starts wit...

Architect's job is not easy

Image
I took a course called Reliable Google Cloud Infrastructure: Design and Process . Actually the course's knowledge is not specific to Google Cloud Platform but also applicable to other cloud platforms. The course is about how to do Architect's job well, including Architecture, Design and Process.   Introduction Requirements Gathering Process Rough --> Structural Design --> Measurable Microservices is an architectural style for developing applications. It decomposes a large application into independent constituent parts, where each part has its own area of responsibility. To serve a single user or API request, such kind of application can call many internal microservices to compose its response. The key advantage is the agility of the application in aspects such as development speed, deployment, and monitoring . It also allows multiple teams to work independently and deliver through to production at their own cadence. Measurement To identify most important require...