Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Microservices: Architecture for the Real-time Organization

2,797 views

Published on

The real-time organization is responsive to change. Real-time organizations architect their systems to evolve naturally as they adapt to the competitive landscape around them. At the core of real-time organizations are microservices. The microservice architecture (MSA) empowers independent teams within large organizations to move at the pace of startups, freeing them from the constraints of “design by committee” and other architectural anti-patterns that ground productivity within the enterprise to a halt.

We explore all of the relevant patterns of microservices architecture including domain-driven design (DDD), circuit breaker, data pump, saga pattern, distributed transaction, async messaging, etc.

Published in: Software
  • Be the first to comment

Microservices: Architecture for the Real-time Organization

  1. 1. Microservices: Architecture forthe Real-time Organization
  2. 2. Whymicroservices?
  3. 3. heritage architecture » Single points of failure » Impossible to scale out (shared mutable state, etc) » Different non-functional requirements (reads, writes, compute) » Optimized for none! » Long, risky release cycles
  4. 4. Whatare microservices?
  5. 5. Microservices » Ubiquitous language » Well defined models & boundaries » Single responsibility » Independantly deployable, scalable, resilient » Communicate via async messaging » Own their data » Don't expose a public API
  6. 6. Approach? Principles » responsive, resilient, elastic, message-driven
  7. 7. Approach? Principles » responsive, resilient, elastic, message-driven Concepts » bounded contexts (DDD), event sourcing, CQRS, CAP (eventual consistency)
  8. 8. Approach? Principles » responsive, resilient, elastic, message-driven Concepts » bounded contexts (DDD), event sourcing, CQRS, CAP (eventual consistency) Tools » Typesafe Reactive Platform (Play, Akka, Spark)
  9. 9. Conceptsand patterns We will cover: » Domain Driven Design (DDD) » Async messaging » API management » Dependency management » CQRS & event sourcing » Transactions & ordering
  10. 10. Domain Driven Design
  11. 11. Goingasync
  12. 12. Async Benefits » Not wasting resources » Memory, CPU, threads » Embracing failure » Not expecting a return from a remote service » Designing for all scenarios
  13. 13. AkkaActors » Message driven architecture » Distribution » Location transparency » Isolation
  14. 14. API management
  15. 15. API mgmt. » Messaging patterns » Pub/sub, point-to-point, streaming » API gateway » Routing, aggregation, protocol translation » Discovery » Service discovery, registry, versioning
  16. 16. Dependencymanagement
  17. 17. CQRS & eventsourcing
  18. 18. Transactionsand ordering
  19. 19. Considerations » ACID doesn't work across location/trust boundaries » No 2-Phase commits (2PC) » No holding locks for the duration of work » In distributed systems we need to compensate for for failure rather than prevent failure
  20. 20. Whatnext?
  21. 21. Microservices withTypesafe » Play for API gateway » Akka for core microservices (DDD, CQRS, event sourcing) » ConductR for cluster management (service registry, discovery, architecture visualization, security)
  22. 22. Thankyou! Visit https://www.typesafe.com/products/typesafe- reactive-platform to get started Contactinfo » Twitter: @kvnwbbr » Email: kevin.webber@typesafe.com

×