-
Notifications
You must be signed in to change notification settings - Fork 2
Technologies
Elisa Du edited this page May 12, 2025
·
4 revisions
This section details the core technologies chosen for the project, the rationale behind each selection, and their application scenarios.
-
Asynchronous, Non-Blocking I/O
Node.js’s event-driven model and async I/O allow it to handle many concurrent requests efficiently, improving overall throughput. -
Lightweight, Flexible Micro-Framework
Express provides only core routing and middleware capabilities, without enforcing specific project structures or ORMs—perfect for rapid iteration and bespoke architecture. -
Team Familiarity
JavaScript is ubiquitous across frontend and backend, reducing the learning curve and enabling shared libraries and tooling.
-
Docker
- Environment Consistency: Identical images in dev, test, and prod eliminate “works on my machine” issues.
- Resource Isolation: Container boundaries keep dependencies and ports separate, preventing conflicts.
-
Docker Compose
- Multi-Container Orchestration: One command spins up backend, Redis, LocalStack, frontend, etc., streamlining setup and integration tests.
- Planned to upload to Docker Hub in the future for easy distribution, version control, and deployment of containerized applications across different environments and teams.
-
LocalStack
- AWS Service Emulation: Locally mocks S3, DynamoDB, SQS, SNS, and more, allowing cloud-API development without internet access or costs.
- CI/CD Friendly: Quickly start and tear down AWS-like services in pipelines, ensuring parity between CI and local environments.
-
High Performance
In-memory storage yields <1 ms response times, ideal for session management and hot-data caching. -
Advanced Data Structures
Strings, hashes, lists, sets, and sorted sets support leaderboards, delayed queues, distributed locks, and more.
-
Cost-Effective & Elastic
Pay-as-you-go pricing with automatic lifecycle policies for tiered storage and cleanup of infrequently accessed objects. -
Local Testing
LocalStack’s S3 API compatibility ensures code behaves identically in local and production environments.
-
Component-Based Architecture
Reusable function/class components simplify complex UIs and improve maintainability. -
Vast Ecosystem
Seamless integration with Redux, React Router, Ant Design, Material-UI, etc.; extensive community resources and tutorials. -
TypeScript Support
Official type definitions (@types/react) and excellent IDE IntelliSense enable strict typing and fewer runtime errors.
-
Automated Docs
Tools likeswagger-ui-expressgenerate an interactive, live-testing API UI with a single command.
-
Flexible Test Runner
Mocha supports both BDD and TDD styles, async tests, and lifecycle hooks (before/after). -
Readable Assertions
Chai’sexpect,should, andassertsyntaxes enhance test clarity and maintainability.