Requirement drop 01
Unlocks Day 4
The requirement details remain hidden until Day 4. Continue with the base specification until this section unlocks.
Implement a centralised backend service that accepts logs over HTTP, validates and enriches them, routes them through RabbitMQ, stores them in SQLite and reports operational metrics.
Duration
7 days
Format
Solo
Review
Required
Base brief
11 requirements
Project summary
TYPE: BACKEND SYSTEM
DURATION: 7 DAYS
DELIVERY: SOLO
REVIEW: MANDATORY PEER REVIEW
This page is the source of truth for the project. Where a summary and an acceptance criterion differ, follow the acceptance criterion.
Problem context
You arrive at InsureTech Corp as a junior backend engineer and discover that 12 microservices write logs to local files across different servers in inconsistent formats. Last week, a claims outage took three hours to resolve because engineers spent two hours SSH’ing into servers and grepping log files just to find the error. The monitoring dashboard has no visibility into application errors, nobody can tell which service is failing most, and the compliance team is demanding audit trails that do not exist.
Required outcome
Build the centralised system the team needed: one ingestion API that validates and enriches logs, routes them by service, writes them reliably, and surfaces live operational signals before customers notice the next outage.
Architecture boundary
All valid logs must pass through the in-memory channel, enrichment and service routing before queueing and storage. Failed writes must be retried and then persisted to the dead letter file; logs must never be silently discarded.
Required data path
HTTP
POST /logs
Buffer
raw_logs
Route
enrich + map
Queue
RabbitMQ
Store
3 × SQLite
Observe
metrics + UI
Learning objectives
Protect an ingestion boundary under load
Move data through an asynchronous pipeline
Design for queue and storage failure
Turn raw events into operational signals
Base specification
All acceptance criteria are mandatory unless an injected requirement explicitly changes them. Expand each requirement to read the complete criteria.
Phase 01
3 requirements
Acceptance criteria
Acceptance criteria
Acceptance criteria
Phase 02
3 requirements
Acceptance criteria
Acceptance criteria
Acceptance criteria
Phase 03
3 requirements
Acceptance criteria
Acceptance criteria
Acceptance criteria
Phase 04
2 requirements
Acceptance criteria
Acceptance criteria
Injected requirements
Additional requirements are released during the project. Once a requirement is released, it becomes mandatory and is included in the grading criteria. Check this section at the indicated release time.
Requirement drop 01
The requirement details remain hidden until Day 4. Continue with the base specification until this section unlocks.
Requirement drop 02
The requirement details remain hidden until Day 6. Continue with the base specification until this section unlocks.
Release times are calculated from the public campaign start date. All participants receive each injected requirement at the same time.
Technical rules
These constraints are assessed alongside functional behavior. A solution that bypasses them does not meet the specification.
Suggested build order
You may use a different sequence, but all requirements, tests, documentation and peer review are due by the end of Day 7.
01 / 05
02 / 05
03 / 05
04 / 05
05 / 05
Submission checklist
The implementation alone is not a complete submission. Provide the following evidence so another engineer can run, test and evaluate the system.
Evaluation
Mandatory peer review
The reviewer should ask these questions and inspect the code, tests and runtime evidence supporting each answer. Record the findings and the changes made after review.
Participation and peer review
Use a public repository. Post the architecture, important trade-offs, test results, performance evidence and final demo. Ask another developer to complete the required peer review. Tag @reduzer_tech so Reduzer can find the submission.
Document the language, architecture, configuration and main risks before implementation.
Publish commits, test output, throughput results, metrics and dashboard evidence.
Have another developer inspect the failure paths, record their findings and document your fixes.
Next project
More public engineering briefs are coming.