mimi-messaging 1.2.7 → 1.2.8

Sign up to get free protection for your applications and to get access to all the features.
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