# @daiso-tech/core > Mastering @daiso-tech/core: Comprehensive Guides for the Backend Server Component Library ## search - [Search the documentation](/search.md) ## docs - [Tags](/docs/tags.md) - [One doc tagged with "Aws s3"](/docs/tags/aws-s-3.md) - [4 docs tagged with "Cache"](/docs/tags/cache.md) - [4 docs tagged with "Circuit-breaker"](/docs/tags/circuit-breaker.md) - [One doc tagged with "Cloudflare r2"](/docs/tags/cloudflare-r-2.md) - [8 docs tagged with "Configuring adapters"](/docs/tags/configuring-adapters.md) - [8 docs tagged with "Creating adapters"](/docs/tags/creating-adapters.md) - [7 docs tagged with "Creating database adapters"](/docs/tags/creating-database-adapters.md) - [One doc tagged with "Digital ocean spaces"](/docs/tags/digital-ocean-spaces.md) - [4 docs tagged with "Event-bus"](/docs/tags/event-bus.md) - [One doc tagged with "Execution Context"](/docs/tags/execution-context.md) - [4 docs tagged with "FileStorage"](/docs/tags/file-storage.md) - [One doc tagged with "File system"](/docs/tags/file-system.md) - [8 docs tagged with "In-memory"](/docs/tags/in-memory.md) - [6 docs tagged with "Kysely"](/docs/tags/kysely.md) - [6 docs tagged with "Libsql"](/docs/tags/libsql.md) - [4 docs tagged with "Lock"](/docs/tags/lock.md) - [One doc tagged with "Middleware"](/docs/tags/middleware.md) - [One doc tagged with "Minio"](/docs/tags/minio.md) - [6 docs tagged with "Mongodb"](/docs/tags/mongodb.md) - [6 docs tagged with "Mysql"](/docs/tags/mysql.md) - [8 docs tagged with "Namespace"](/docs/tags/namespace.md) - [8 docs tagged with "NoOp"](/docs/tags/no-op.md) - [6 docs tagged with "Postgres"](/docs/tags/postgres.md) - [4 docs tagged with "Rate-limiter"](/docs/tags/rate-limiter.md) - [7 docs tagged with "Redis"](/docs/tags/redis.md) - [One doc tagged with "Resolver"](/docs/tags/resolver.md) - [7 docs tagged with "Resolvers"](/docs/tags/resolvers.md) - [4 docs tagged with "Semaphore"](/docs/tags/semaphore.md) - [4 docs tagged with "Shared-lock"](/docs/tags/shared-lock.md) - [6 docs tagged with "Sqlite"](/docs/tags/sqlite.md) - [One doc tagged with "Supabase Storage"](/docs/tags/supabase-storage.md) - [One doc tagged with "Tigris"](/docs/tags/tigris.md) - [9 docs tagged with "Usage"](/docs/tags/usage.md) - [9 docs tagged with "Utilities"](/docs/tags/utilities.md) - [Backoff policies](/docs/components/backoff_policies.md): The @daiso-tech/core/backoff-policies component - [CacheResolver](/docs/components/cache/cache_resolver.md): The CacheResolver class provides a flexible way to configure and switch between different cache adapters at runtime. - [Cache usage](/docs/components/cache/cache_usage.md): The @daiso-tech/core/cache component provides a way for storing key-value pairs with expiration independent of data storage - [Configuring Cache adapters](/docs/components/cache/configuring_cache_adapters.md): MemoryCacheAdapter - [Creating cache adapters](/docs/components/cache/creating_cache_adapters.md): Implementing your custom ICacheAdapter - [Circuit-breaker provider resolver classes](/docs/components/circuit_breaker/circuit_breaker_factory_resolver.md): pro - [Circuit-breaker usage](/docs/components/circuit_breaker/circuit_breaker_usage.md): The @daiso-tech/core/circuit-breaker component provides a way for managing circuit-breaker independent of underlying platform or storage. - [Configuring circuit-breaker adapters](/docs/components/circuit_breaker/configuring_circuit_breaker_adapters.md): RedisCircuitBreakerAdapter - [Configuring circuit-breaker policies](/docs/components/circuit_breaker/configuring_circuit_breaker_policies.md): ConsecutiveBreaker - [Creating circuit-breaker adapters](/docs/components/circuit_breaker/creating_circuit_breaker_adapters.md): Implementing your custom ICircuitBreakerAdapter - [Creating policies](/docs/components/circuit_breaker/creating_circuit_breaker_policies.md): Implementing your custom ICircuitBreakerPolicy - [Codec](/docs/components/codec.md): The @daiso-tech/core/codec component provides seamless way to encode/decode data. - [Collection](/docs/components/collection.md): The @daiso-tech/core/collection component provides a fluent, convenient wrapper for working with a Array, Iterable and AsyncIterable. - [configuring_event_bus_adapters](/docs/components/event_bus/configuring_event_bus_adapters.md): Configuring EventBus adapters - [Creating EventBus adapters](/docs/components/event_bus/creating_event_bus_adapters.md): Implementing your custom IEventBusAdapter - [EventBusResolver](/docs/components/event_bus/event_bus_resolver.md): The EventBusResolver class provides a flexible way to configure and switch between different event bus adapters at runtime. - [EventBus usage](/docs/components/event_bus/event_bus_usage.md): The @daiso-tech/core/event-bus component provides a way for dispatching and listening to events independent of underlying technology. - [Execution Context](/docs/components/execution-context.md): The @daiso-tech/core/execution-context module provides a type-safe, composable, and environment-agnostic way to store and propagate contextual data (such as request IDs, user info, or tracing metadata) across async boundaries and function calls. It is inspired by thread-local storage and context propagation in distributed systems, but is designed for modern TypeScript/JavaScript applications. - [FileSize](/docs/components/file_size.md): The @daiso-tech/core/file-size component provides an easy way for defining, manipulating, and comparing file size. Furthermore, it is designed for easy integration with external file size libraries. - [Configuring file-storage adapters](/docs/components/file_storage/configuring_file_storage_adapters.md): MemoryFileStorageAdapter - [Creating lock adapters](/docs/components/file_storage/creating_file_storage_adapters.md): Implementing your custom IFileStorageAdapter - [FileStorageResolver](/docs/components/file_storage/file_storage_resolver.md): The FileStorageResolver class provides a flexible way to configure and switch between different file-storage adapters at runtime. - [FileStorage usage](/docs/components/file_storage/file_storage_usage.md): The @daiso-tech/core/file-storage component provides a way for managing files independent of underlying platform or storage. - [Configuring lock adapters](/docs/components/lock/configuring_lock_adapters.md): MemoryLockAdapter - [Creating lock adapters](/docs/components/lock/creating_lock_adapters.md): Implementing your custom ILockAdapter - [LockFactoryResolver](/docs/components/lock/lock_factory_resolver.md): The LockFactoryResolver class provides a flexible way to configure and switch between different lock adapters at runtime. - [Lock usage](/docs/components/lock/lock_usage.md): The @daiso-tech/core/lock component provides a way for managing locks independent of underlying platform or storage. - [Middleware](/docs/components/middleware.md): The @daiso-tech/core/middleware module provides a flexible middleware system for intercepting and composing function calls. It enables you to wrap functions with pre-processing and post-processing logic, similar to middleware patterns found in web frameworks like Express.js. - [Namespace](/docs/components/namespace.md): The @daiso-tech/core/namespace component provides seamless way to group data by prefixing and suffixing keys. - [Configuring rate-limiter adapters](/docs/components/rate-limiter/configuring_rate_limiter_adapters.md): RedisRateLimiterAdapter - [Configuring rate-limiter policies](/docs/components/rate-limiter/configuring_rate_limiter_policies.md): SlidingWindowLimiter - [Creating rate-limiter adapters](/docs/components/rate-limiter/creating_rate_limiter_adapters.md): Implementing your custom IRateLimiterAdapter - [Creating policies](/docs/components/rate-limiter/creating_rate_limiter_policies.md): Implementing your custom IRateLimiterPolicy - [Rate-limiter resolver factory classes](/docs/components/rate-limiter/rate_limiter_factory_resolver.md): RateLimiterFactoryResolver - [Rate-limiter usage](/docs/components/rate-limiter/rate_limiter_usage.md): The @daiso-tech/core/rate-limiter component provides a way for managing rate-limiter independent of underlying platform or storage. - [Resilience](/docs/components/resilience.md): The @daiso-tech/core/resilience component provides predefined fault tolerant middlewares. - [Configuring semaphore adapters](/docs/components/semaphore/configuring_semaphore_adapters.md): MemorySemaphoreAdapter - [Creating semaphore adapters](/docs/components/semaphore/creating_semaphore_adapters.md): Implementing your custom ISemaphoreAdapter - [SemaphoreFactoryResolver](/docs/components/semaphore/semaphore_factory_resolver.md): The SemaphoreFactoryResolver class provides a flexible way to configure and switch between different semaphore adapters at runtime. - [Semaphore usage](/docs/components/semaphore/semaphore_usage.md): The @daiso-tech/core/semaphore component provides a way for managing semaphores independent of underlying platform or storage. - [Serde](/docs/components/serde.md): The @daiso-tech/core/serde component provides seamless way to serialize/deserialize data and adding custom serialization/deserialization logic for custom data types. - [Configuring shared-lock adapters](/docs/components/shared_lock/configuring_shared_lock_adapters.md): MemorySharedLockAdapter - [Creating shared-lock adapters](/docs/components/shared_lock/creating_shared_lock_adapters.md): Implementing your custom ISharedLockAdapter - [SharedLockFactoryResolver](/docs/components/shared_lock/shared_lock_factory_resolver.md): The SharedLockFactoryResolver class provides a flexible way to configure and switch between different shared-lock adapters at runtime. - [Shared-lock usage](/docs/components/shared_lock/shared_lock_usage.md): The @daiso-tech/core/shared-lock component provides a way for managing shared-locks (a.k.a reader writer locks) independent of underlying platform or storage. - [TimeSpan](/docs/components/time_span.md): The @daiso-tech/core/time-span component provides an easy way for defining, manipulating, and comparing durations. Furthermore, it is designed for easy integration with external time libraries like Luxon and Dayjs. - [Installation](/docs/installation.md): Prerequisites - [ErrorPolicy type](/docs/utilities/error_policy_type.md): The ErrorPolicy type determines which errors should be handled for example in resilience middlewares like retry or fallback. - [Invokable](/docs/utilities/invokable.md): An Invokable represents a callable entity, which can be either: