9. Architecture
• Whiteboard diagrams - boxes and arrows
• Collapse related components
• Have different views
• Keep it abstract - but actionable
• Typically Layered
10. Architecture
• What
• Are we building
• What roles interact with the system
• How does it integrate into the rest of the environment
• Data flows, process flows
11. Architecture
• What
• is the technology stack
• how do interactions between various components
happen?
• What are the lower level technology choices?
12. Architecture
• What
• does the detailed software component architecture
look like?
• How do these components interact with each other
• Fairly low level - developer oriented
15. Architecture - Process
• Find the Drivers of the business, Goals, requirements
• What is our strategy to implement this?
• How does the overall vision get implemented?
(roadmap)
16. Architecture - Process
• What are the risks? How do we mitigate them?
• How does the architecture evolve?
• Quality - review - validate
17. Architecture
• A good architecture helps you evolve
• A good design lets you change at a lesser cost
• Abstractions - decoupling help with that
• Reduce tight coupling and hard dependencies
20. Fallacies of Distributed Systems
• The network is reliable
• Latency is zero
• Bandwidth is infinite
• The network is secure
• Topology does not change
• Transport cost is zero
• Network is homogeneous
24. Distributed Transactions
• Follows 2 Phase Commit protocol
• Very Chatty protocol and does a lot of logging to be able to recover
from any failure scenario.
• Too much overhead to 99.9% of the cases to handle less than 0.1% of
cases
• Increases the chances for deadlocks on the database.
• Lowers the overall performance of the system.
• Bane of scalability. Grinds the entire system to halt by adding
overhead to each and every transaction.
25. Distributed Transactions
• Availability of the Systems goes down.
• XA Configuration is complicated
• Difficult to test.
• Many People tend to believe that using JTA implementation of
transaction manager will take care of a XA transactions
• Many a time people end up using JTA Manager even while
dealing with single resource
26. Asynchronous Architectures
• Event Delivery Guarantees
– Reliability
• At least Once - Duplicate events can be delivered
• At most Once - Some events can be lost
• Once and only Once - Each is delivered Exactly once
– Order of Delivery
• In Order Guaranteed
• In Order not Guaranteed
Editor's Notes
Webservices
-- What is a service
-- Protocol for SOAP/Rest
-- Pros/Cons of Soap and Rest
-- Different Verbs
Security
-- Authentication, Authorization
--SQL Injection
--Public key Cryptography
--SSL --HTTPS
AWS
-- Regions Vs Availability Zones
-- EBS