InfoQ Homepage Web Development Content on InfoQ
-
Engineering a Time Series Database Using Open Source: Rebuilding InfluxDB 3 in Apache Arrow and Rust
At times, to evolve your product, you need to rebuild it from scratch. The article provides the story behind the rewrite of InfluxDB from scratch using a different programming language - Rust - and stack - Apache Flight, Data Fusion, Apache Arrow and Parquet (FDAP). It emphasises the benefits, as well as the mechanics behind its operation and the different versions of the product.
-
FedCM: a New Proposed Identity Standard That Could Change How We Log in on the Web
FedCM is a new proposed browser API for secure, frictionless, privacy-preserving federated logins. FedCM simplifies user authentication, for both user and developers and reduces the reliance on third-party cookies. The proposal is currently a public working draft moving towards a candidate recommendation from the W3C It's actively developed, with Chromium browsers already supporting it.
-
Backend FinOps: Engineering Cost-Efficient Microservices in the Cloud
Backend FinOps integrates financial discipline into microservices, crucial for cutting cloud costs. Challenges such as resource fragmentation and cold starts underscore the need for intelligent design, effective language choice, robust tagging, and automation. Implementing FinOps via IaC, CI/CD checks, and dynamic autoscaling (e.g., Karpenter) ensures sustained efficiency.
-
Faster, Smoother, More Engaging: Personalized Content Pagination
Dynamic content loading powered by AI transforms user experiences by personalizing delivery based on user's behavior and network conditions. By analyzing scroll depth, speed, and dwell time, we optimize loading times, enhance engagement, and reduce infrastructure costs, especially on devices with poor internet connectivity.
-
RxJS Best Practices in Angular 16: Avoiding Subscription Pitfalls and Optimizing Streams
This article delves into modern Angular (16+) RxJS best practices. It emphasizes using AsyncPipe for templates, flattening streams with operators, ensuring proper cleanup with takeUntil and DestroyRef, implementing error handling, and combining RxJS with Angular signals for efficient state management, ultimately leading to future-proof and maintainable code in Angular 17/18.
-
How Rules Can Foster Creativity: the Design System of Reykjavík
The value of design systems is especially evident in the public sector, where the need to use taxpayer money effectively aligns with the demand for user-centered solutions. By examining Reykjavík’s design system, we can gain insights into how design systems promote creativity, efficiency, and collaboration, with implications for both private and public sectors.
-
How Functional Programming Can Help You Write Efficient, Elegant Web Applications
Many things can make software more challenging to understand and, consequently, to maintain. One of the most complex and problematic causes is managing internal mutable states. When the internal state is poorly managed, the software behaves unexpectedly, leading to bugs and fixing, which introduces unnecessary complexity. FP solves this problem by providing immutability mechanisms and more.
-
WebAssembly and Containers: Orchestrating Distributed Architectures with .NET Aspire
Running, composing, and debugging distributed applications on the local developer machine can be difficult, error-prone, and time-intensive. Those daily tasks could be dramatically simplified thanks to .NET Aspire. In this article, we will quickly dive into .NET Aspire and illustrate how you can orchestrate next-generation distributed applications.
-
WebAssembly, the Safer Alternative to Integrating Native Code in Java
Developers typically choose between porting the code or dynamic linking to run native code on the JVM. This article examines these approaches, using SQLite as an example, and introduces a third option: Chicory Wasm runtime. This alternative combines the advantages of traditional methods while addressing their limitations, potentially offering a more secure solution to integrate native code.
-
Java Virtual Threads: a Case Study
This article explores JDK 21's virtual threads, comparing their performance with Open Liberty's thread pool. It covers key findings like throughput, ramp-up times, and memory footprint. Despite advantages, virtual threads showed unexpected performance issues, especially in CPU-intensive workloads. This analysis guides Java developers on when and how to use virtual threads in their applications.
-
Streaming HTML – Asynchronous DOM Updates without JavaScript
Web applications provide the best user experience when pages load quickly and display additional data as it becomes available. Developers typically use JavaScript to load data asynchronously, but this adds complexity when compared to server-side rendering. We review a technique that uses the Shadow DOM with HTTP streaming to load pages quickly and display data asynchronously without JavaScript.
-
Polyglot Programming with WebAssembly: A Practical Approach
WebAssembly has expanded its scope from browsers to other domains like cloud and edge computing. It uses the WebAssembly Component Model (WCM) to enable seamless interaction between libraries from different programming languages, such as Rust, Python, and JavaScript, promoting a true polyglot programming environment.