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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 527a758d4b21ce645d864f0653e69fc9c190e736
4
- data.tar.gz: 77b21de1f5e0b3a0ca2430468e9981b8ecf58f9b
2
+ SHA256:
3
+ metadata.gz: 8fa18eabeb0e00848c4eaf7eca202e77cef3526bd6995506ce810f0000dbdc9e
4
+ data.tar.gz: 34808e22b8405e89de11f0c571ac98004a2be18fa52e3587877e8f9eeb9c0dc0
5
5
  SHA512:
6
- metadata.gz: 9b64ee4bda0243a7a5f60a54f2b34ce43b83e4d8dc0d6c931bd3e73e1bc5a9716a5f97acaec555f2ccd3728442af54d17dd483d8122b23dea1ce982dc3ea4429
7
- data.tar.gz: 9b930b5b3b13c3b6d5a5e984ad10a96c5e644659374a416708820a7c42e94ba546a6c9c802b371bcfd1a918b6bd0697022f236ee34a1114c1883cf6678282094
6
+ metadata.gz: c88607df18839125d858dea4ca4a076403910ac0f1ced785289dbe990910ff193ca069d16e6a72e67a43119ef983671e2dde3582a1871b9118fca3ac774746b8
7
+ data.tar.gz: 485b23c110854107a0580f0932a1bd60a1a5d3bf45ae57cf914dd778733a328adf0c642fbcdde1cf2ee2ba5d87b627a5fc97486e1682daef09277d0dbd168fdc
data/README.md CHANGED
@@ -1,7 +1,11 @@
1
- # [WIP] mimi-messaging
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/created"`).
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
+
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Mimi
4
4
  module Messaging
5
- VERSION = "1.2.7"
5
+ VERSION = "1.2.8"
6
6
  end
7
7
  end
@@ -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", "~> 10.0"
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.7
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: 2019-10-14 00:00:00.000000000 Z
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: '10.0'
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: '10.0'
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
- rubyforge_project:
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