- **The Developer's Guide to Icons: Icon Fonts vs. SVGs**  
  Icons are a crucial part of any app: along with specific color schemes, layouts, and workflows, icons create a consistent language within the app that a user can easily identify.  
   [Will Watkins](https://www.eraser.io/decision-node/the-developers-guide-to-icons-svgs-vs-icon-fonts)

- **Mastering Service Communication: Patterns and Trade-Offs**  
  Discover essential communication strategies–from synchronous and asynchronous request-response to event-driven approaches–and learn how to navigate their unique advantages and challenges. Whether you're building scalable microservices or optimizing inter-service workflows, this guide equips you with the insights needed to choose the right patterns for performance, maintainability, and resilience.  
   [Saurabh Dashora](https://www.eraser.io/decision-node/mastering-service-communication-patterns-and-trade-offs)

- **Managing Multi-Page Forms**  
  As Makers and Markers expands to facilitate full-scale construction projects, we're faced with the challenge of transforming simple checkout forms into intricate, multi-page flows without overwhelming users or developers. This article delves into effective strategies for managing complex form sequences by comparing graph and sequence models, and shows how combining them can offer flexibility and maintainability. Discover how tools like React Multi Page Form can simplify the development process and enhance user experience in large-scale applications.  
   [Stu Kabakoff](https://www.eraser.io/decision-node/managing-multi-page-forms)

- **Analyzers in Elasticsearch and OpenSearch: How to Design the Searches You Need**  
  Over the years, you’ve heard something about Elasticsearch’s inverted index, and its reliance on tokenizers, filters, and analyzers, but you’re at a loss as to how to begin. You find yourself asking, which analyzers should I use? How can I create an analyzer to fit the needs of my business? This article covers different approaches to optimizing your searches, considering the complexity and benefits that each presents.  
   [Paul Lisker](https://www.eraser.io/decision-node/analyzers-in-elasticsearch-and-opensearch-how-to-design-the-searches-you-need)

- **Load Balancing and API Gateways**  
  Navigating traffic management for your app can be confusing. Do you need an API gateway or a load balancer? The answer is often both. However, this raises further questions: Where do they go? How many do you need? What kind? Let us help you make informed decisions for your application.  
   [Stu Kabakoff](https://www.eraser.io/decision-node/load-balancing-and-api-gateways)

- **Orchestration in Action: Handling Not-So-Happy Paths in Modern Software Systems**  
  Software architecture would be easy if the world only had happy paths, but real-world applications are complex. Modern architectures have many moving pieces, paths, and services that interact with each other.  
   [Raul Junco](https://www.eraser.io/decision-node/orchestration-in-action-handling-not-so-happy-paths-in-modern-software-systems)

- **Consuming AI APIs: Off-The-Shelf vs Custom**  
  Navigating the complexities of integrating AI into your applications can be daunting, especially with the myriad of options available. This article demystifies the process by comparing off-the-shelf AI APIs with custom AI solutions, highlighting the trade-offs between ease of use and customization, cost efficiency, and data privacy. Discover practical implementation strategies to align AI with your business goals, and make informed decisions to leverage AI effectively in your operations.  
   [Gwendolyn Faraday](https://www.eraser.io/decision-node/consuming-ai-apis-off-the-shelf-vs-custom)

- **Server Side Rendering for Web Apps: The Tradeoffs You're Making**  
  React Server Components, Server Actions, HTMX, Hotwire, Livewire–all these new shiny things are pushed on us as the better and correct way of doing things. But the truth is, they are not better, they are just more tools that we can choose to use or choose to ignore.  
   [Sam Meech-Ward](https://www.eraser.io/decision-node/server-side-rendering-for-web-apps-the-tradeoffs-youre-making)

- **Demystifying NoSQL vs SQL (It's not what you might think)**  
  SQL still stands today, over 50 years after its inception, as one of the most popular ways of interacting with databases. But in those 50 years, the software development landscape has shifted in ways that have catalyzed the popularity of other approaches too.  
   [Ken Kohlmann](https://www.eraser.io/decision-node/demystifying-nosql-vs-sql-its-not-what-you-might-think)

- **On Building with AI**  
  At Eraser, we started our journey with AI a year ago, building, and eventually incorporating multiple AI features into our core app. This article looks at several decisions we made along the way, addressing some in a more philosophical or strategic manner, and some more tactically.  
   [Yoel Tadmor](https://www.eraser.io/decision-node/on-building-with-ai)

- **Parallel Paths: Building New Systems Alongside Legacy Systems**  
  Navigating the development of significant new functionality while effectively maintaining legacy systems poses a significant challenge for many organizations.  
   [Chris Ballance](https://www.eraser.io/decision-node/parallel-paths-building-new-systems-alongside-legacy-systems)

- **API Rate Limiting Strategies: Token Bucket vs. Leaky Bucket**  
  Controlling the flow and rate of the traffic is known as Rate Limiting. Not having rate limiting may lead to exploitation of systems and high downtime.  
   [Piyush Garg](https://www.eraser.io/decision-node/api-rate-limiting-strategies-token-bucket-vs-leaky-bucket)

- **Extensible and Flexible 3rd Party Integrations: Leveraging the Infrastructure Persistence Layer**  
  The infrastructure persistence layer introduces the notion of a generalized contract that multiple 3rd party services of the same type can implement, and it leverages the idea of dependency injection when instantiating a service object that can accommodate for swappable services.  
   [Leeho Lim and Rohin Bhargava](https://www.eraser.io/decision-node/extensible-and-flexible-3rd-party-integrations-leveraging-the-infrastructure-persistence-layer)

- **Image Hosting: The Essential Optimizations**  
  The main problem with images is that they are large. This size introduces performance, cost, and security concerns that warrant a different architecture than the rest of the data being served by a typical web app.  
   [Chris Mederos](https://www.eraser.io/decision-node/image-hosting-the-essential-optimizations)

- **Small Steps, Big Impact: The Role of Stacked Workflows in Streamlining Software Development**  
  Enter stacked workflows–a pragmatic solution designed to offer a structured method to manage and integrate changes in a way that promotes making small, frequent PRs.  
   [Gwendolyn Faraday](https://www.eraser.io/decision-node/small-steps-big-impact-the-role-of-stacked-workflows-in-streamlining-software-development)

- **The DiCE Principle: Towards Reliable Data Analysis**  
  The DiCE principle states that you must manage Data, Code, and Environment for reliable results.  
   [Albert Lee](https://www.eraser.io/decision-node/the-dice-principle-towards-reliable-data-analysis)

- **The Secret Weapon of Modern Apps: Unveiling Kubernetes Autoscaling**  
  Servers are buckling under the weight of millions of eager players, and you need to scale up fast. Can you handle the surge without crashes or lag?  
   [Brad Morgan](https://www.eraser.io/decision-node/the-secret-weapon-of-modern-apps-unveiling-kubernetes-autoscaling)

- **Beyond Normalization**  
  Over the years, normalization has been the bedrock of designing efficient, reliable databases. Normalization is no longer the be-all and end-all of database design.  
   [Raul Junco](https://www.eraser.io/decision-node/beyond-normalization)

- **Navigating the Complex Landscape of Application Hosting Options: A Guide for Decision Makers**  
  Gone are the days when server architecture decisions were as simple as choosing between buying hardware or renting a server. Today, we're faced with lambdas, managed container services, virtual machines, Kubernetes, and more.  
   [Stu Kabakoff](https://www.eraser.io/decision-node/navigating-the-complex-landscape-of-application-hosting-options-a-guide-for-decision-makers)

- **Auth Strategies**  
  The topic of authentication/authorization is one of those things that all engineers come in contact with at some point but quickly forget.  
   [Zach Gollwitzer](https://www.eraser.io/decision-node/auth-strategies)

- **Dynamic Toolbars and Menus**  
  Just about any app will include one or more toolbars or menus that provide a UI for users to perform actions or change configuration.  
   [Yoel Tadmor](https://www.eraser.io/decision-node/dynamic-toolbars-and-menus)

- **Code Sharing**  
  Sharing code between multiple services can turn into a topic of contention in a project team. The larger the service footprint, the greater the intensity of debate on how to share functionality between the various services.  
   [Saurabh Dashora](https://www.eraser.io/decision-node/code-sharing)

- **Configurable Access Controls**  
  Our product is a big hit, but we're starting to hear from our happy users that they're unable to roll it out organization-wide because they need a different configuration of permissions than our model provides. What to do?  
   [Yoel Tadmor](https://www.eraser.io/decision-node/configurable-access-controls)

- **Search Indexing**  
  You've decided that it's time to employ a specialized search database or service such as Elasticsearch. This leaves you with an important question: how to get all of our data indexed and available for search?  
   [Yoel Tadmor](https://www.eraser.io/decision-node/search-indexing)
