Skip to content

Latest commit

 

History

History
34 lines (25 loc) · 2.67 KB

architecture-characteristics.md

File metadata and controls

34 lines (25 loc) · 2.67 KB

Top Architecture Characteristics

S.No. Characteristic Why
1 Cost - Farmacy Foods is a startup firm with limited resources. We propose to reduce cost by using open source libraries and reusing services provided by AWS.
2 Adaptablity - Farmacy Family is an extension to Farmacy Foods. New components should be adaptable to existing system and should provide seamless integeration.
3 Agility - Solution should be delivered quickly. Time to market could a constraint here. Suggest to have less in-house build components
4 Security - Farmacy Family plan to store customer's PII (Personal Identifiable Information), EMR (Electronic Medical Record). Data compliance, governance should be taken into consideration.
- We offer storing data in Amazon S3 layer, and accessed via AWS HIPPA eligible services.
5 Feasibility & Simplicity - Prefer pay-as-you-go instead of owning infrastructure and licenses.
6 Extensibility Farmacy Foods is in the growth phase and is likely to constantly add products and features.
7 Scalability Farmacy Foods had ambitious growth plans and the architecture should scale with growing business and community.

Architecture Styles

Considering above -ilities, we narrowed down architecture style to following:-

  • Microkernel
  • Event-driven only
  • Microservices only

Microkernel

A style consisting of two types of components core , plugin.
In future if we were to add more third parties such as Gym, Therapist etc. They could potentially be added as plugin to existing system.
However, one could argue they could be managed as separate identity in identity management system.
This style may be more suitable for insurance, claims system.

Event-driven only

Components like Personalization, notification are asynchronous by nature, hence more suitable for event-driven style.

Micorservices only

Farmacy Family has components like User Profile and Access Control. This component needs to validate identity and respond back synchronously to proceed further. Only event-driven style would not serve stated purpose.

Hybrid

Finally, we propose an style that is a mix of monolith, event driven, microservices. Component level style can be found in Solution section

References

https://learning.oreilly.com/videos/software-architecture-fundamentals/9781491998991/
https://aws.amazon.com/blogs/architecture/store-protect-optimize-your-healthcare-data-with-aws/
https://aws.amazon.com/compliance/hipaa-eligible-services-reference/