Best of Backend Development — December 2023
- 1
- 2
Livecycle·2y
8 Docker Extensions to Use in 2024
Discover 8 Docker Extensions that can improve your productivity and overall developer experience, including Livecycle for sharing docker-compose apps, JMeter for load testing, ContainerWatch for monitoring container usage, Docketeer for detailed metrics, PGAdmin for Postgres database management, Portainer for easy container management, Snyk for security checks, and Excalidraw for local drawing.
- 3
Community Picks·2y
Introducing Loco: The Rails of Rust
Loco.rs is a Rust web backend framework inspired by Ruby on Rails. It aims to provide a batteries-included experience for Rust developers. To get started with Loco, you can use their CLI tool and generate a new project. The routing in Loco is based on Axum and allows you to use familiar concepts like middleware. Models in Loco are implemented using sea_orm and can be easily generated. Loco also supports job processing with sidekiq-rs. You can deploy your Loco application using Docker or Shuttle.
- 4
Bits and Pieces·2y
How To Build a Web API using Express.js, Bun and MongoDB?
Learn how to build a high-performing Express.js API backed by MongoDB using Bun. This article provides step-by-step instructions for setting up the application, installing the necessary tools, designing the MongoDB schema, defining business logic in controllers, adding routes, and configuring MongoDB. It also covers adding monitoring to Express.js applications with logging and data validation using express-validator.
- 5
Community Picks·2y
Getting Started with Axum - Rust's Most Popular Web Framework
Axum is a popular web framework for building REST APIs in Rust. It is simple to use and has hyper-compatibility with Tower, a library for building network applications. Axum follows the style of REST-style APIs like Express, where you can create handler functions and attach them to Axum's `Router` type. It supports various extractors for handling request data, such as JSON, forms, and headers. Axum also provides support for adding middleware, serving static files, and managing app state. It is recommended to use Shuttle for deployment, as it simplifies the process.
- 6
- 7
- 8
Bits and Pieces·2y
Implementing a Microservices Application with CQRS (Command Query Responsibiltiy Segregation)
Implementing a microservices application with CQRS (Command Query Responsibility Segregation) involves separating the responsibilities of reading data and writing data into different components. This pattern improves performance and scalability by using different models for updating and reading information in a system.
- 9
Fly.io·2y
Rethinking Serverless with FLAME
FLAME is a pattern for elastically scaling applications without the need to manage servers or rewrite the entire application. It allows you to wrap existing app code in a function and run it in a temporary copy of your app. FLAME can be implemented in different languages, but the Elixir flame library is specifically mentioned in the article. The library includes features like process placement and remote monitoring to handle pool scale-up and scale-down logic and to optimize resource usage. FLAME removes the complexities and layers of communication associated with traditional FaaS solutions.
- 10
InfoQ·2y
Why LinkedIn chose gRPC+Protobuf over REST+JSON: Q&A with Karthik Ramgopal and Min Chen
LinkedIn explains why they chose gRPC and Protocol Buffers over REST and JSON for inter-service communication in their microservices platform. They observed significant latency improvements and are advising Rest.li users to migrate to gRPC.
- 11
GitHub Blog·2y
Upgrading GitHub.com to MySQL 8.0
GitHub upgraded its fleet of 1200+ MySQL hosts to MySQL 8.0 over the course of a year. The upgrade was motivated by the end of life of MySQL 5.7, the desire for the latest features and security patches, and the need to maintain service level objectives. GitHub prepared for the upgrade by determining infrastructure requirements, ensuring application compatibility, and communicating the upgrade plan. During the upgrade process, challenges such as replication delay and query failures were encountered and addressed. The lessons learned from the upgrade will inform future upgrade processes.
- 12
Hacker News·2y
SQL as API
Using SQL in the API can be a viable solution for complex filtering and adding flexibility to the API. It involves validating and sanitizing the SQL input and allows for easy modification and customization. However, it requires careful documentation, has performance considerations, and may lead to vendor lock-in.
- 13
Stack Overflow Blog·2y
What is UI 2.0? Netlify CEO Matt Biilmann explains
Developers are integrating AI into their workflow for automation, knowledge sharing, and productivity. However, AI experimentation comes with challenges such as incorrect answers, security issues, lack of regulation, and decreased code quality. UI 2.0 is a concept of customizing app UIs for each user.
- 14
daily.dev·2y
Under the Hood: daily.dev weekly digest
daily.dev's Weekly Digest feature sends personalized emails with recommended articles to users. The feature has configurable sending options, personalized content based on user interests, and AB testing for email templates. daily.dev uses technologies like GraphQL and Sendgrid to implement this feature effectively.
- 15
Medium·2y
Databases 101
Choosing the right database is crucial for the success of a project. Different databases excel at different tasks and it is important to consider factors such as data type and usage. There are three main types of databases - user-facing databases, databases for analytics, and databases for operations. User-facing databases include relational databases and NoSQL databases. Analytical databases are used for analyzing data and include data warehouses and data lakes. Operational databases are used for internal operations and include key-value stores, time series databases, and logs/search databases.
- 16
Medium·2y
Low-Code Development: A Comprehensive Guide for Tech Enthusiasts and Beginners
Low-code development is a visual approach that uses less code and drag-and-drop interfaces. It allows more people to get into software development without extensive coding knowledge. Building an app with low code is usually simpler and faster, but there are limitations in terms of customization and cost.
- 17
Medium·2y
Golang: Easy Fetch Millions of Data using Concurrent
This article discusses the challenges of fetching huge amounts of data, including performance concerns, resource utilization, network bandwidth, and data filtering and sorting. It presents a case study of fetching data from a third-party API and suggests using concurrent running to improve performance. It provides an example implementation using Golang and explains the concept of concurrency.
- 18
Hacker News·2y
Gobs of data
The gob package in Go provides an easy-to-use and efficient encoding system for transmitting data structures across a network or storing them in a file. It offers a Go-specific environment for communication between servers written in Go. Gobs work with the language in a way that other encodings cannot, and they also take inspiration from existing systems like Google's protocol buffers.