Skip to content
ExponaBLOG
Series · Day 100 of 100

Design Patterns in Practice

  1. 51
    Fluent interfaces: a Design Patterns guide for developers
    APIs that read like sentences.
  2. 52
    The pipeline pattern: a practical Design Patterns guide
    Process data through a series of steps.
  3. 53
    Plugin architecture: a practical Design Patterns guide
    Extend an app without changing its core.
  4. 54
    CQRS without the complexity: what developers should know
    Separate the write model from the read model.
  5. 55
    Event sourcing in one minute: what developers should know
    Store events, derive state.
  6. 56
    The saga pattern: a Design Patterns guide for developers
    Distributed transactions without two-phase commit.
  7. 57
    The outbox pattern: a Design Patterns guide for developers
    Reliable event publishing from your database.
  8. 58
    Circuit breaker: Design Patterns lessons from production
    Stop calling a failing dependency.
  9. 59
    Retry with exponential backoff: best practices explained
    Retries done right.
  10. 60
    The bulkhead pattern: a practical Design Patterns guide
    Isolate failures so one problem doesn't sink everything.
  11. 61
    Always set timeouts: a practical Design Patterns guide
    No timeout means waiting forever.
  12. 62
    API gateway pattern: a practical Design Patterns guide
    One entry point for many services.
  13. 63
    Backend for frontend (BFF): patterns, pitfalls and fixes
    A dedicated backend per client type.
  14. 64
    The strangler fig pattern in Design Patterns in Practice
    Replace a legacy system piece by piece.
  15. 65
    The sidecar pattern: a practical Design Patterns guide
    Add capabilities next to your app, not inside it.
  16. 66
    Caching patterns: a Design Patterns guide for developers
    Cache-aside, read-through, write-through and write-behind.
  17. 67
    Idempotency keys: a Design Patterns guide for developers
    Make repeated requests safe.
  18. 68
    Rate limiter patterns: a practical Design Patterns guide
    Protect systems from overload and abuse.
  19. 69
    Leader election: Design Patterns lessons from production
    When only one instance should do the work.
  20. 70
    Pub/sub vs point-to-point queues: lessons from production
    Two messaging patterns, different guarantees.
  21. 71
    Competing consumers: a practical Design Patterns guide
    Scale workers by sharing one queue.
  22. 72
    React component patterns: a hands-on guide for engineers
    Patterns I use in every React codebase.
  23. 73
    Compound components: a practical Design Patterns guide
    Components that work together through shared context.
  24. 74
    From render props to hooks: patterns, pitfalls and fixes
    How React patterns evolved.
  25. 75
    The provider pattern: a practical Design Patterns guide
    Share values across a component tree.
  26. 76
    State machines for UI: a practical Design Patterns guide
    Make impossible UI states impossible.
  27. 77
    Optimistic UI: Design Patterns best practices explained
    Update first, confirm later.
  28. 78
    Multi-tenancy patterns: a practical guide for developers
    Three isolation models for SaaS.
  29. 79
    Feature toggles: Design Patterns lessons from production
    Decouple deployment from release.
  30. 80
    Designing a pricing engine: patterns, pitfalls and fixes
    Strategy and rules for a transportation platform.
  31. 81
    The rules engine pattern: a hands-on guide for engineers
    Business rules that business users can change.
  32. 82
    Abstracting payment gateways: what developers should know
    Adapter, factory and strategy working together.
  33. 83
    Notification channels as strategies: a step-by-step guide
    Email, SMS, WhatsApp, push — one interface.
  34. 84
    Building a workflow automation engine in Design Patterns
    Patterns behind CRM automations.
  35. 85
    A webhook dispatcher: a practical Design Patterns guide
    Sending webhooks reliably to customers.
  36. 86
    Anti-patterns to recognize: patterns, pitfalls and fixes
    Patterns that cause pain.
  37. 87
    The anemic domain model: real-world lessons and examples
    Entities with only getters and setters.
  38. 88
    When patterns become over-engineering in Design Patterns
    More abstractions, more problems.
  39. 89
    Pattern-itis: concepts, trade-offs and production lessons
    The urge to use every pattern you learned.
  40. 90
    Refactoring toward patterns: what developers should know
    Let patterns emerge from real code.
  41. 91
    Code smells that suggest a pattern: a step-by-step guide
    Symptoms and the patterns that cure them.
  42. 92
    Patterns inside .NET: a practical Design Patterns guide
    The framework is a pattern catalog.
  43. 93
    Patterns inside NestJS: a practical guide for developers
    Learn NestJS faster by spotting the patterns.
  44. 94
    Patterns in React: a Design Patterns guide for developers
    Classic patterns in modern frontend code.
  45. 95
    Patterns in Flutter: a practical Design Patterns guide
    Flutter is built on familiar patterns.
  46. 96
    Testing patterns: a Design Patterns guide for developers
    Patterns that keep tests readable.
  47. 97
    Test data builders: a Design Patterns guide for developers
    Readable tests without giant setup blocks.
  48. 98
    How to choose a pattern: real-world lessons and examples
    A quick decision guide.
  49. 99
    Communicate designs with patterns: a step-by-step guide
    Patterns compress design discussions.
  50. 100
    100 days of design patterns: lessons — a practical guide
    Wrapping up the series.