mimi-messaging 1.2.7 → 1.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
 - data/README.md +22 -2
 - data/docs/Messaging_Layer_Properties.md +1 -1
 - data/docs/Why_HTTP_is_a_bad_choice.md +4 -4
 - data/lib/mimi/messaging/version.rb +1 -1
 - data/mimi-messaging.gemspec +1 -1
 - metadata +5 -6
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 2 
     | 
    
         
            +
            SHA256:
         
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 8fa18eabeb0e00848c4eaf7eca202e77cef3526bd6995506ce810f0000dbdc9e
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 34808e22b8405e89de11f0c571ac98004a2be18fa52e3587877e8f9eeb9c0dc0
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: c88607df18839125d858dea4ca4a076403910ac0f1ced785289dbe990910ff193ca069d16e6a72e67a43119ef983671e2dde3582a1871b9118fca3ac774746b8
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 485b23c110854107a0580f0932a1bd60a1a5d3bf45ae57cf914dd778733a328adf0c642fbcdde1cf2ee2ba5d87b627a5fc97486e1682daef09277d0dbd168fdc
         
     | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -1,7 +1,11 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            #  
     | 
| 
      
 1 
     | 
    
         
            +
            # mimi-messaging
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            Interservice communication via message bus for microservices.
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
      
 5 
     | 
    
         
            +
            ## Is it production ready?
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            No. Consider this project a WIP.
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
       5 
9 
     | 
    
         
             
            ## What
         
     | 
| 
       6 
10 
     | 
    
         | 
| 
       7 
11 
     | 
    
         
             
            `mimi-messaging` is a Messaging layer -- an interservice
         
     | 
| 
         @@ -15,6 +19,9 @@ See also: [Overview of Messaging layer properties](docs/Messaging_Layer_Properti 
     | 
|
| 
       15 
19 
     | 
    
         | 
| 
       16 
20 
     | 
    
         
             
            ## Why
         
     | 
| 
       17 
21 
     | 
    
         | 
| 
      
 22 
     | 
    
         
            +
            When it comes to organizing communications between different microservices of a system,
         
     | 
| 
      
 23 
     | 
    
         
            +
            currently there is only two options: to use HTTP or a message bus.
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
       18 
25 
     | 
    
         
             
            [Why HTTP is a bad choice for interservice communication?](docs/Why_HTTP_is_a_bad_choice.md)
         
     | 
| 
       19 
26 
     | 
    
         | 
| 
       20 
27 
     | 
    
         
             
            TBD: Message bus pro's and con's.
         
     | 
| 
         @@ -45,10 +52,20 @@ Mimi::Messaging.start 
     | 
|
| 
       45 
52 
     | 
    
         | 
| 
       46 
53 
     | 
    
         
             
            ## Usage
         
     | 
| 
       47 
54 
     | 
    
         | 
| 
      
 55 
     | 
    
         
            +
            Producing messages:
         
     | 
| 
       48 
56 
     | 
    
         
             
            ```
         
     | 
| 
      
 57 
     | 
    
         
            +
            # COMMAND
         
     | 
| 
      
 58 
     | 
    
         
            +
            Mimi::Messaging.command("users/lock", id: "b3cc29c8d2ec68e0")
         
     | 
| 
      
 59 
     | 
    
         
            +
             
     | 
| 
      
 60 
     | 
    
         
            +
            # QUERY
         
     | 
| 
       49 
61 
     | 
    
         
             
            response = Mimi::Messaging.query("orders/show", id: 123)
         
     | 
| 
      
 62 
     | 
    
         
            +
             
     | 
| 
      
 63 
     | 
    
         
            +
            # EVENT
         
     | 
| 
       50 
64 
     | 
    
         
             
            ```
         
     | 
| 
       51 
65 
     | 
    
         | 
| 
      
 66 
     | 
    
         
            +
            See (/examples)[/examples] folder for more examples on how to produce and consume messages.
         
     | 
| 
      
 67 
     | 
    
         
            +
             
     | 
| 
      
 68 
     | 
    
         
            +
             
     | 
| 
       52 
69 
     | 
    
         
             
            ## Adapters
         
     | 
| 
       53 
70 
     | 
    
         | 
| 
       54 
71 
     | 
    
         
             
            `mimi-messaging` is not bound to a specific message broker implementation like RabbitMQ or Kafka. It interacts with a message broker using an adapter interface and
         
     | 
| 
         @@ -58,7 +75,7 @@ there are several available adapters: 
     | 
|
| 
       58 
75 
     | 
    
         
             
            * RabbitMQ (TBD)
         
     | 
| 
       59 
76 
     | 
    
         
             
            * NATS (TBD)
         
     | 
| 
       60 
77 
     | 
    
         
             
            * [Amazon SQS/SNS](https://github.com/kukushkin/mimi-messaging-sqs_sns)
         
     | 
| 
       61 
     | 
    
         
            -
            * in-memory (single process)
         
     | 
| 
      
 78 
     | 
    
         
            +
            * (in-memory (single process))[lib/mimi/messaging/adapters/memory.rb]
         
     | 
| 
       62 
79 
     | 
    
         | 
| 
       63 
80 
     | 
    
         
             
            ## Designing apps
         
     | 
| 
       64 
81 
     | 
    
         | 
| 
         @@ -71,6 +88,9 @@ There are only two hard problems in distributed systems: 
     | 
|
| 
       71 
88 
     | 
    
         
             
            2. Exactly-once delivery
         
     | 
| 
       72 
89 
     | 
    
         
             
            ```
         
     | 
| 
       73 
90 
     | 
    
         | 
| 
      
 91 
     | 
    
         
            +
             
     | 
| 
      
 92 
     | 
    
         
            +
            [Messaging API specification format](https://github.com/kukushkin/mimi-messaging-spec)
         
     | 
| 
      
 93 
     | 
    
         
            +
             
     | 
| 
       74 
94 
     | 
    
         
             
            ## License
         
     | 
| 
       75 
95 
     | 
    
         | 
| 
       76 
96 
     | 
    
         
             
            The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
         
     | 
| 
         @@ -95,7 +95,7 @@ For commands and queries, the target of the message consists of a queue name 
     | 
|
| 
       95 
95 
     | 
    
         
             
            and a method name (e.g. `"customers/create"`).
         
     | 
| 
       96 
96 
     | 
    
         | 
| 
       97 
97 
     | 
    
         
             
            For events, the target of the message consists of a topic name and an
         
     | 
| 
       98 
     | 
    
         
            -
            event type (e.g. `"customers 
     | 
| 
      
 98 
     | 
    
         
            +
            event type (e.g. `"customers#created"`).
         
     | 
| 
       99 
99 
     | 
    
         | 
| 
       100 
100 
     | 
    
         
             
            This allows to model the communication around your business domain concepts,
         
     | 
| 
       101 
101 
     | 
    
         
             
            and not the implementation details like application or host names.
         
     | 
| 
         @@ -1,6 +1,4 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # Why HTTP is a bad choice for interservice communication
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            [WIP]
         
     | 
| 
      
 1 
     | 
    
         
            +
            # [WIP] Why HTTP is a bad choice for interservice communication
         
     | 
| 
       4 
2 
     | 
    
         | 
| 
       5 
3 
     | 
    
         
             
            Downsides of HTTP:
         
     | 
| 
       6 
4 
     | 
    
         
             
            * inherently synchronous
         
     | 
| 
         @@ -17,4 +15,6 @@ Downsides of HTTP: 
     | 
|
| 
       17 
15 
     | 
    
         | 
| 
       18 
16 
     | 
    
         
             
            Pro's of HTTP:
         
     | 
| 
       19 
17 
     | 
    
         
             
            * synchronous communication is simple
         
     | 
| 
       20 
     | 
    
         
            -
            * HTTP as technology is well known by engineers
         
     | 
| 
      
 18 
     | 
    
         
            +
            * HTTP as technology is well known by engineers
         
     | 
| 
      
 19 
     | 
    
         
            +
            * more stable and simpler to setup if the services are not closely deployed (e.g. in different datacenters/regions)
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
    
        data/mimi-messaging.gemspec
    CHANGED
    
    | 
         @@ -36,6 +36,6 @@ Gem::Specification.new do |spec| 
     | 
|
| 
       36 
36 
     | 
    
         | 
| 
       37 
37 
     | 
    
         
             
              spec.add_development_dependency "bundler", "~> 2.0"
         
     | 
| 
       38 
38 
     | 
    
         
             
              spec.add_development_dependency "pry", "~> 0.12"
         
     | 
| 
       39 
     | 
    
         
            -
              spec.add_development_dependency "rake", "~>  
     | 
| 
      
 39 
     | 
    
         
            +
              spec.add_development_dependency "rake", "~> 13.0"
         
     | 
| 
       40 
40 
     | 
    
         
             
              spec.add_development_dependency "rspec", "~> 3.0"
         
     | 
| 
       41 
41 
     | 
    
         
             
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: mimi-messaging
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 1.2. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 1.2.8
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Alex Kukushkin
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: exe
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date:  
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2021-02-16 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: mimi-core
         
     | 
| 
         @@ -58,14 +58,14 @@ dependencies: 
     | 
|
| 
       58 
58 
     | 
    
         
             
                requirements:
         
     | 
| 
       59 
59 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       60 
60 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       61 
     | 
    
         
            -
                    version: ' 
     | 
| 
      
 61 
     | 
    
         
            +
                    version: '13.0'
         
     | 
| 
       62 
62 
     | 
    
         
             
              type: :development
         
     | 
| 
       63 
63 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       64 
64 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       65 
65 
     | 
    
         
             
                requirements:
         
     | 
| 
       66 
66 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       67 
67 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       68 
     | 
    
         
            -
                    version: ' 
     | 
| 
      
 68 
     | 
    
         
            +
                    version: '13.0'
         
     | 
| 
       69 
69 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       70 
70 
     | 
    
         
             
              name: rspec
         
     | 
| 
       71 
71 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -145,8 +145,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       145 
145 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       146 
146 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       147 
147 
     | 
    
         
             
            requirements: []
         
     | 
| 
       148 
     | 
    
         
            -
             
     | 
| 
       149 
     | 
    
         
            -
            rubygems_version: 2.6.14.4
         
     | 
| 
      
 148 
     | 
    
         
            +
            rubygems_version: 3.1.2
         
     | 
| 
       150 
149 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       151 
150 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       152 
151 
     | 
    
         
             
            summary: Interservice communication via message bus for microservices
         
     |