4 Building Block Design Principles
- Right to be forgotten: everything must be deletable
- User-centered design
The best tools evolve from empathizing, understanding and designing for the needs of end-users. Accordingly, we’ve identified a series of use cases and user journeys here: InfoMed - RFIMPL_Use Case Journeys.docx
Each use case is composed of a collection of modules, or building blocks. As you can see, a relatively small set of these building blocks can be readily applied to a wide variety of applications in low-resource settings.
- Based on open standards
- Based on Digital Development Principles, see https://digitalprinciples.org/ and https://digitalinvestmentprinciples.org/
- Built on open-source software (where possible)
- No vendor lock-in
- Cloud native (Docker/Docker Compose/OCI containers)
- Code is openly developed and available to anyone, via Github or Gitlab
- Continuous funding for maintenance, development and evolution
- Attractive to ICT industry and individual developers in deployment environment (incentives must be aligned)
- Lower cost than commercial solutions due to shared development costs
- Uses microservices-based architecture instead of monolithic.
- This increases interoperability, development and deployment speed and reliability.
- From Wikipedia: a variant of the service-oriented architecture (SOA) structural style – arranges an application as a collection of loosely coupled services. In a microservices architecture, services are fine-grained and the protocols are lightweight.
- Blocks are audited and certified before being made available
- Development processes and standards enforce quality and security
- Different certification levels reflect level of standards-compliance
- Regular security scanning and auditing
- Public ratings and reviews
- Comprehensive logging and exception handling
- Meets users where they are: web, mobile, SMS and/or voice. UI supports accessibility technologies, e.g. screen readers.
- SSO allows for signing in once for multiple services
- Shared ownership of code
- Deployment and development processes and standards are open to contributors
- Community-driven development tools for documentation and support
- Blueprints, templates and documentation
- Blocks can be reused in multiple contexts
- Each block is autonomous
- Blocks are interoperable
- Easy to set up
- Standardized configuration and communications protocols connecting blocks
- Blocks can be provided as a service (ICT opportunity)
- Operates in low-resource environments:
- Occasional power
- Low bandwidth
- Low-reliability connectivity
- Easily scalable for high availability and reliability
- API-only based decoupling
- Asynchronous communications pattern decoupled through rooms is ideal
- Eventual consistency for data
Last modified 9mo ago