weekly learning

Posted by ilake on March 4, 2017

“strive 2/25 ~ 3/04”


  • [gem] expeditor

    • Expeditor is a Ruby library that provides asynchronous execution and fault tolerance for microservices.



  • [book] Cloud Design Patterns

    • Cache-aside Pattern

      Load data on demand into a cache from a data store. This pattern can improve performance and also helps to maintain consistency between data held in the cache and the data in the underlying data store.

      • consider
        • Lifetime of Cached Data
        • Evicting Data
        • Priming the Cache
        • Consistency
        • Local (In-Memory) Caching
    • Circuit Breaker Pattern

      Handle faults that may take a variable amount of time to rectify when connecting to a remote service or resource. This pattern can improve the stability and resiliency of an application.

      • consider
        • Exception Handling
        • Types of Exceptions
        • Logging
        • Recoverability
        • Testing Failed Operations
        • Manual Override
        • Concurrency
        • Resource Differentiation
        • Accelerated Circuit Breaking
        • Replaying Failed Requests
        • Inappropriate Timeouts on External Services
      • When to Use this Pattern
        • To prevent an application from attempting to invoke a remote service or access a shared resource if this operation is highly likely to fail.
    • Compensating Transaction Pattern

      • How to handle cancel or exception on a series of steps
      • Undo the work performed by a series of steps, which together define an eventually consistent operation, if one or more of the steps fail.
      • idempotency-patterns
      • When to Use this Pattern
        • Use this pattern only for operations that must be undone if they fail. If possible, design solutions to avoid the complexity of requiring compensating transactions