You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
is specified in xml using the [Simple Binary Encoding (SBE)](https://github.com/real-logic/simple-binary-encoding)
8
8
9
9
## Current State
10
-
The implementation is the first beta release. The API will be changed only if required for bugfixes.
10
+
The implementation is the second beta release. The API may still be changed for bug fixes or significant issues.
11
11
12
12
# Design
13
13
@@ -22,21 +22,21 @@ the archive library is a layering on top of that.
22
22
23
23
Finally golang idioms are used where reasonable.
24
24
25
-
The archive library does not lock and concurrent calls to archive
26
-
library calls that invoke the aeron-archive protocol calls should be
27
-
externally locked to ensure only one concuurrent access.
25
+
The archive library does not lock and concurrent calls on an archive
26
+
client to invoke the aeron-archive protocol calls should be externally
27
+
locked to ensure only one concurrent access.
28
28
29
29
### Naming and other choices
30
30
31
31
Function names used in archive.go which contains the main API are
32
32
based on the Java names so that developers can more easily switch
33
-
between langugages and so that any API documentation is more useful
33
+
between languages and so that any API documentation is more useful
34
34
across implementations. Some differences exist due to capitalization
35
35
requirements, lack of polymorphism, etc.
36
36
37
37
Function names used in encoders.go and proxy.go are based on the
38
-
protocol specification. Where the protocol specifies a type that cab
39
-
ne naturally repreented in golang, the golang type is used used where
38
+
protocol specification. Where the protocol specifies a type that can
39
+
be naturally represented in golang, the golang type is used used where
40
40
possible until encoding. Examples include the use of `bool` rather than
41
41
`BooleanType` and `string` over `[]uint8`
42
42
@@ -72,28 +72,40 @@ operations in progress when polling.
72
72
73
73
## Examples
74
74
75
-
Examples are provided for a [basic_recording_publisher](examples/basic_recording_publisher/basic_recording_publisher.go) and [basic_replayed_subscriber](examples/basic_replayed_subscriber/basic_replayed_subscriber.go) that interoperate with the Java examples
75
+
Examples are provided for a [basic_recording_publisher](examples/basic_recording_publisher/basic_recording_publisher.go) and [basic_replayed_subscriber](examples/basic_replayed_subscriber/basic_replayed_subscriber.go) that interoperate with the Java examples.
76
76
77
77
## Security
78
78
79
79
Enabling security is done via setting the various auth options. [config_test.go](config_test.go) and [archive_test.go](archive_test.go) provide an example.
80
80
81
-
The actual semantics of the security are dependent upon which authenticator aupplier you use and is tested agains[secure-logging-archiving-media-driver](secure-logging-archiving-media-driver).
81
+
The actual semantics of the security are dependent upon which authenticator supplier you use and is tested against[secure-logging-archiving-media-driver](secure-logging-archiving-media-driver).
82
82
83
83
# Backlog
84
84
* godoc improvements
85
85
* more testing
86
86
* archive-media-driver mocking/execution
87
87
* test cleanup in the media driver can be problematic
88
-
* The archive state is largely unused.
89
-
* Add? and use? IsOpen()
90
88
* Auth should provide some callout mechanism
91
89
* various FIXMEs
92
90
93
91
# Bigger picture issues
94
92
* Decided not to do locking in sync api, could subsequently add locks, or just async with locks.
95
93
It may be that the control marshaller should be parameterized for this.
96
94
* Java and C++ poll the counters to determine when a recording has actually started but the counters are not
97
-
availabe in go. As a result we use delays and 'hope' which isn't ideal.
95
+
available in go. As a result we use delays and 'hope' which isn't ideal.
98
96
* It would be nice to silence the OnAvailableCounter noise
99
97
* Within aeron-go there are cases of Log.Fatalf(), see for example trying to add a publication on a "bogus" channel.
98
+
99
+
## Release Notes
100
+
101
+
### 1.0b2
102
+
* Handle different archive clients using same channel/stream pairing
103
+
* Provide Subscription.IsConnected() and IsRecordingEventsConnected()
104
+
* Replace go-logging with zap to avoid reentrancy crashes in logging library
105
+
* Improve the logging by downgrading in severity and message tone some warning level messages
106
+
* Fix a race condition looking up correlationIDs on ControlResponse
107
+
* Fix a return code error in StopRecordingById()
108
+
* Fix unused argumentin StopRecording()
109
+
* Cosmetic improvements for golint and staticcheck
110
+
* Make the Listeners used for async events be per archive client instead of global
0 commit comments