Comments (25)
Yes we plan to publish to Maven Central in the not too distant future.
from aeron.
Kewl. I had already "mavenized" Aeron by myself, but having Aeron on Maven
Central is much better, of course :-)
*Fortuna audaces adiuvat - hos solos ? *
On 24 November 2014 at 17:09, Martin Thompson [email protected]
wrote:
Yes we plan to publish to Maven Central in the not too distant future.
—
Reply to this email directly or view it on GitHub
#31 (comment).
from aeron.
assigning to myself. We'll discuss timing of this for a 1.0 release.
from aeron.
Should revisit this soon.
from aeron.
I'd greatly appreciate a Maven artifact before 1.0.
from aeron.
I think we can have a sweep of the current bugs and then look to doing a 0.1 release.
from aeron.
That'd be swell, I can make immediate use of that. Thanks @mjpt777!
from aeron.
messy task ahead :-)
2015-03-06 21:17 GMT+01:00 Michael Drogalis [email protected]:
I'd greatly appreciate a Maven artifact before 1.0.
—
Reply to this email directly or view it on GitHub
#31 (comment).
from aeron.
+1 :)
from aeron.
This will happen shortly when we release 0.1 beta.
from aeron.
Watch this space....
from aeron.
drum roll
from aeron.
Finally :)
from aeron.
It is done. Aeron 0.1 is submitted to maven.
Artifacts:
aeron-client
for client onlyaeron-driver
for driver and clientaeron-all
for client and driver and Agronaaeron-tools
andaeron-system-tests
also included if desired
from aeron.
+1 ;) will experiment to lift aeron to an object-universe. I think I'll call it Egon :)
from aeron.
For mapping to the object universe, SBE has been improved for tighter integration.
from aeron.
FYI, I will be doing a release of SBE tomorrow.
from aeron.
Hooray! Congrats everyone!
from aeron.
Sweet!
from aeron.
Excellent stuff!
from aeron.
Haven't looked for a while into SBE. I thought about providing a generic SBE codec for fst-ser some time ago, this would enable to mix the convenience+productivity of a "top down approach" with performance and platform-neutrality of SBE's bottom up approach. However unsure on how to achieve this. Either generating SBE message layouts from classes or define a generic java-object message (don't know if this could be expressed with SBE).
(edit: .. SBE-IR !)
from aeron.
@RuedigerMoeller Objects directly mapping to messages is like objects directly mapping to database tables. There are fundamental differences which are best respected. I like to treat messages as first class and not pretend objects can be turned into messages by magic. To have clear separation of concerns a message should just contain the information that must be communicated and not be coupled to how it is transformed to and from object implementations. I get such bad feeling in my stomach when I see DTOs.
from aeron.
@mjpt777 I'd disagree here.
First, modelling a network connection as a stream of objects isn't that a leaky abstraction compared to what is done in the db-mapping domain.
Second, it depends on the productivity/flexibility/performance tradeoffs one is willing to make.
See:
By implementing the reactive-streams spec for kontraktor (just a few 100 lines of code) I get:
- remotable reactive streams for free (generic remoting)
- connectivity using tcp, websockets, [+http] for free
- Binary encoding or Json encoding for free.
- javascript cross platform connectivity (mostly for free)
at a reasonable end to end performance (up to 1.8 million remoted reactive stream msg per sec). The application on top deals with object-level streams and object level async remote calls, so I can run it on a load of different topologies (incl. single process). If I add e.g. an Aeron connector, existing code will profit immediately without requiring a change.
Will you run a low latency HFT app on that ? Probably not, but its possible to build a reasonable performing distributed application with very little amount of code and manpower, in addition level of distribution becomes kind of a deployment time decision, only pay for remoting if you actually need it.
Lifting the level of abstraction enables generic optimizations which would have to be done manually otherwise. So top-down abstraction has upsides and downsides same as Java vs. C.
from aeron.
@RuedigerMoeller We can agree to differ :-)
For me objects fundamentally have state and behaviour and they tend to exist within a graph of dependencies. Messages on the other hand should just be data represented in a cross language and cross platform manner. Messages should also be individually versioned, and belong to a interaction protocol that is versioned in itself.
Reactive streams is about reacting to events which are encapsulated in messages. Not about reacting to objects. We may implement in actual classes for an language but the semantics are different. I find that when the differences are respected then a lot of good properties flow. I'd put my messages in a shared context from a DDD perspective.
I'm not arguing against useful abstractions. I just think messages are a better abstraction for communication than objects.
from aeron.
@mjpt777 I agree regarding semantics of Objects vs Messages. I am talking of representation. An immutable class can be semantically treated as a message.
If one uses the class-level representation as a foundation of encoding/message generation it has the benefit that protocol behaviour can be developed at higher level (object/class universe) allowing to share a single behaviour implementation across various transports and wire formats.
That was the point I was trying to make regarding reactive streams (proof of concept): I implemented the behaviour once at high level (async rpc) and can use this with various network transports and encodings as well as in-process.
Versioning/cross platform: Depends, if its just streaming some data from one backoffice system to another, there might be some YAGNI ;) .
from aeron.
Related Issues (20)
- Local subscribers jammed on stuck image HOT 1
- How can the driver safely timestamp any fragment at an offset? HOT 5
- Unexpected timeout exception when client joining a cluster - cluster connect timeout HOT 2
- Does aeron support "ReadIndex Read" and "Lease Read" HOT 1
- Can use Cluster instead AeronCluster ? HOT 1
- After running the program for a period of time, the error "a fault occurred in a recent unsafe memory access operation in compiled Java code" is reported.
- Cluster cannot start if some nodes lost their files and log has been truncated in remaining nodes HOT 5
- `canClaim` or a similar mechanism HOT 1
- Question regarding Live replay subscription HOT 1
- [C]aeron_udp_channel_interceptor_table_length compute issue
- Cluster Follower's logChannel rejoin cost too much time HOT 1
- Build Issue with JDK 21 HOT 3
- [Java] Consensus Module throws an unexpected interrupt error at gracefull shutdown on slow or containerized environments HOT 4
- Timeout exception - AeronCluster client with non-default ingress and egress stream-id HOT 1
- Connectivity for Spies
- aeronmd.c Closing multi-publisher IPC publication HOT 2
- Cannot set thread affinity in shared or sharednetwork modes for c media driver HOT 3
- list-members(ClusterTool) command does not show isLeader accurately
- big latency while transmit small packets cross different AWS zone over Aeron comparing with raw UDP HOT 2
- AeronCluster.AsyncConnect can forget to close subscription HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from aeron.