usage statistics of arc42 websites Publish repo statistics publish current repository statistics (like issues, bugs) of arc42 websites Persistent results store important results and events persistently for future reference Current updates inform owners of important system events, like „somebody has requested the statistics“ or „server restarted“
Q-1 Site usage (like pageviews, visitor counts) results have to be correct. Spam- and bot traffic shall be excluded from counts. Error rates in data representation should be below 0.5% as measured by data quality checks. Environment friendly Q-2 Reduce computing resources as much as possible: Complete data reload must have < 10 API requests per displayed website. Available Q-3 Available: statics are available via the website 24x7. Short periods (hours) of downtime (max 8h) can be allowed, in such cases cached or dated results shall be displayed Simple, understandable visualization Q-4 Data has to be displayed in easily understandable manner, e.g. numerical tables. At least 90% of users should be able to understand the displayed data without further instruction, as measured by a user survey. Reliable Q-5 Uptime of 99.9% per month. Error rates (including server errors, and data access issues) should not exceed 0.1% of all system transactions. Secure Q-6 Compliant with EU data privacy regulations, no cookies, no tracking over multiple sites, „privacy friendly“.
access Fly.io (cloud) host for backend Turso DB (cloud-based) distributed database for results Slack Messaging tool to send updates to subscribers GitHub Gives access to current issue/bug counts of site repositories
save remote requests / network traffic by caching results for (configurable) amount of time External data provider Accurate, secure Delegate usage counter to external service (plausible.io), which handles GDPR compliance Cloud hosted in multiple regions Reliable, available use established Hyperscaler (fly.io) and distributed database (turso.tech) for 99.99% availability and low latency Backend in Go Well-suited for cloud operations, drivers for all external APIs available for Go. Attractive for developers.
receives API requests and dispatches to domain main application startup and initialization domain „business logic“, mainly coordination of external systems types specific data types and – structures ≪wrapper≫ wrapping details of external systems, responsible for access
Quality Requirements 4. Solution Strategy 12. Glossary 7. Deployment View 5. Building Block View 3. Context & Scope 2. Constraints 9. Architectural Decisions 11. Risks & Technical Debt Cross-cutting topics, often very technical and detailed Hardware, infrastructure & deployment important and specific terms („ubiquitous language“) fundamental requirements, top quality goals External systems & interfaces important runtime scenarios Core ideas and solution approaches Structure of source code, modularisation (hierarchical) Overview plus quality scenarios Important decisions (not described elsewhere) Known problems and risks Concepts