cafienne / bounded-framework Goto Github PK
View Code? Open in Web Editor NEWThe Bounded framework for Scala, Akka and Domain Driven Design
Home Page: http://www.cafienne.io/bounded
License: Apache License 2.0
The Bounded framework for Scala, Akka and Domain Driven Design
Home Page: http://www.cafienne.io/bounded
License: Apache License 2.0
Scalfmt is already part of the project but IT is not automatically triggered
Offset store support for leveldb in order to run local based bounded apps. See the CassandraOffsetStore implementation for an example.
Bounded has a CommandGateway defined, but in the Cargo example the CommandGateway is not used, instead another class, JobAggregateRootRouterProvider, is being used. This does not match with the rest of the sample project (gives errors). It would be nice if JobAggregateRootRouterProvider is adjusted or replaced by CommandGateway (derived) class.
Exception in thread "main" java.util.concurrent.TimeoutException: Futures timed out after [3 seconds]
at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:255)
at scala.concurrent.impl.Promise$DefaultPromise.result(Promise.scala:259)
at scala.concurrent.Await$.$anonfun$result$1(package.scala:215)
at scala.concurrent.BlockContext$DefaultBlockContext$.blockOn(BlockContext.scala:53)
at scala.concurrent.Await$.result(package.scala:142)
at io.cafienne.bounded.akka.persistence.eventmaterializers.CassandraOffsetStore.(OffsetStore.scala:82)
at io.cafienne.bounded.akka.persistence.eventmaterializers.ReadJournalOffsetStore.$init$(OffsetStore.scala:161)
A TestableProjection does not stop the previous listener that was created resulting in processing one event multiple times.
The current wercker workflow only test the code but it does not generate and publish artifacts.
Proposal:
This is proposal to adopt widely used notion of Projection in place where EventMaterializer is used.
Reason is that it would help with on-boarding by requiring to keep less of a mapping between concepts discussed in DDD/CQRS/ES circles and concrete implementation found in bounded-framework
.
Current toolkit from io.cafienne.bounded.akka.persistence.eventmaterializers
would become akka-persistence implementation.
There are several things related to project licensing that could be improved
Amount of boilerplate code
Apache 2.0 license does not require each file to contain a lot of license text. It may vary from no notice on the individual file level to short notice to elaborate notice if one wants each file read in isolation to point to the origins of it.
Clear reference to the owner(s)
Currently it states:
// Copyright (C) 2018 the original author or authors.
// See the LICENSE file distributed with this work for additional
// information regarding copyright ownership.
original author or authors
is not elaborated on anywhere else
Good example of succinct header addressing both points IMHO is akka project:
/**
* Copyright (C) 2009-2018 Lightbend Inc. <https://www.lightbend.com>
*/
Another possibility is to include reference to owner and site in README.md
once and not to each individual file, which is also sufficient by Apache 2.0 license if one wishes.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.