🌐 Disee v0.1.0 - First Release
Disee is a containerized, distributed search engine built with FastAPI and Docker. This first release establishes the core Gateway–Worker architecture - a working distributed system that fetches real-time data from Wikipedia & StackOverflow, partitions it into chunks, and fans it out across multiple worker nodes for parallel processing and aggregation.
What's Shipped
Phase 1 - Single Node (Single Machine)
- Standalone node capable of independently managing search logic
- Handles query intake, data fetching, and result return on a single machine
- Foundation for the Gateway–Worker split introduced in later phases
Phase 2 - Multiple Nodes (Single Machine)
- Introduction of the Gateway Service as the central orchestrator
- Multiple Worker containers spun up via Docker Compose on a single host
- Gateway fans out processed data chunks to workers in parallel using
httpx+asyncio
Phase 3 - Static Nodes (Multiple Machines)
- Full distribution across 3 static worker nodes on separate machines
- Gateway routes queries concurrently to all active workers and aggregates results
- Groundwork laid for future dynamic node registration and fault tolerance
Architecture
Tech Stack
| Layer | Technology |
|---|---|
| Language | Python 3.9+ |
| Web Framework | FastAPI |
| Frontend | React, Tailwind CSS, Framer Motion |
| HTTP Client | HTTPX (async) |
| Containerization | Docker & Docker Compose |
| Data Sources | Wikipedia API, StackOverflow API |
Quick Start
# Clone the repo
git clone https://github.com/AnshMNSoni/Disee.git
cd Disee
# Spin up the cluster
docker-compose up --build
# Gateway search endpoint
http://localhost:8000/search?q=your_keyword
# Swagger UI
http://localhost:8000/docs/
# Frontend (optional)
cd frontend && npm install && npm run devRoadmap
- Phase 1: Standalone Search Node
- Phase 2: Dockerized Multi-Node Aggregation
- Phase 3: Static Distribution Across Multiple Machines
- Inverted Index with write-through distributed caching
- Performance benchmarking & latency metrics
- Dynamic Node Registration & Heartbeats
- Fault-tolerant querying (graceful node timeout handling)
Known Limitations
- No inverted index in this release — full sequential scan only
- No performance metrics or benchmarking dashboard yet
- Node discovery is static; dynamic registration is planned
- Local development scope — not yet production-grade
Contributing
Pull requests and issues are welcome!
- Fork the project
- Create your branch:
git checkout -b feature/YourFeature - Commit:
git commit -m 'Add YourFeature' - Push:
git push origin feature/YourFeature - Open a Pull Request