New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Scala API #1

Closed
jroper opened this Issue Mar 10, 2016 · 106 comments

Comments

Projects
None yet
@jroper
Member

jroper commented Mar 10, 2016

Lagom needs a Scala API.

@pengfeiz

This comment has been minimized.

Show comment
Hide comment
@pengfeiz

pengfeiz commented Mar 10, 2016

+1

@lshoo

This comment has been minimized.

Show comment
Hide comment
@lshoo

lshoo commented Mar 10, 2016

+1

@arunma

This comment has been minimized.

Show comment
Hide comment
@arunma

arunma commented Mar 10, 2016

+1

@rysh

This comment has been minimized.

Show comment
Hide comment
@rysh

rysh commented Mar 10, 2016

+1

@kushti

This comment has been minimized.

Show comment
Hide comment
@kushti

kushti commented Mar 10, 2016

+1

@logistark

This comment has been minimized.

Show comment
Hide comment
@logistark

logistark commented Mar 10, 2016

+1

@miklos-martin

This comment has been minimized.

Show comment
Hide comment
@miklos-martin

miklos-martin commented Mar 10, 2016

👍

@rayyildiz

This comment has been minimized.

Show comment
Hide comment
@rayyildiz

rayyildiz commented Mar 10, 2016

+1

@devsprint

This comment has been minimized.

Show comment
Hide comment
@devsprint

devsprint commented Mar 10, 2016

+1

@pkinsky

This comment has been minimized.

Show comment
Hide comment
@pkinsky

pkinsky commented Mar 10, 2016

+1

@cenkcorapci

This comment has been minimized.

Show comment
Hide comment

cenkcorapci commented Mar 10, 2016

+1

@Vanco

This comment has been minimized.

Show comment
Hide comment
@Vanco

Vanco commented Mar 10, 2016

+1

@gantamk

This comment has been minimized.

Show comment
Hide comment
@gantamk

gantamk Mar 10, 2016

+9000000000000000L (withMagicBase)

gantamk commented Mar 10, 2016

+9000000000000000L (withMagicBase)

@russwyte

This comment has been minimized.

Show comment
Hide comment
@russwyte

russwyte Mar 10, 2016

:+1 Also please don't make Guice/JSR330 the norm - plain constructor DI is just fine thanks.

russwyte commented Mar 10, 2016

:+1 Also please don't make Guice/JSR330 the norm - plain constructor DI is just fine thanks.

@renatocaval

This comment has been minimized.

Show comment
Hide comment
@renatocaval

renatocaval Mar 10, 2016

Member

A little bit more than just a +1...

Is there are a draft already for the Scala API?
It would be nice to have it built / designed together with the community.

I've been working myself on a CQRS/ES library (www.funcqrs.io). Some of you were probably already aware of it. If not I invite you guys to have a look on it.
It has many similarities with Lagom persistence layer, but it's in Scala.

Although this may sound like a shameless plug for Fun.CQRS, my goal here is rather to start a discussion about the Scala API for Lagom.

I've spent a lot of time in tweaking and collecting feedback from the DDD community in order to refine Fun.CQRS' API and I think the same should happen with Lagom.

So, my question is: which Scala API do we want for Lagom, how does it should look like, which shape do we want it to have?

Member

renatocaval commented Mar 10, 2016

A little bit more than just a +1...

Is there are a draft already for the Scala API?
It would be nice to have it built / designed together with the community.

I've been working myself on a CQRS/ES library (www.funcqrs.io). Some of you were probably already aware of it. If not I invite you guys to have a look on it.
It has many similarities with Lagom persistence layer, but it's in Scala.

Although this may sound like a shameless plug for Fun.CQRS, my goal here is rather to start a discussion about the Scala API for Lagom.

I've spent a lot of time in tweaking and collecting feedback from the DDD community in order to refine Fun.CQRS' API and I think the same should happen with Lagom.

So, my question is: which Scala API do we want for Lagom, how does it should look like, which shape do we want it to have?

@Mullefa

This comment has been minimized.

Show comment
Hide comment
@Mullefa

Mullefa commented Mar 10, 2016

+1

@pathikrit

This comment has been minimized.

Show comment
Hide comment
@pathikrit

pathikrit commented Mar 10, 2016

+1

@rkuhn

This comment has been minimized.

Show comment
Hide comment
@rkuhn

rkuhn Mar 10, 2016

@rcavalcanti This seems to be a voting ticket, discussion will probably have to happen elsewhere ;-) Another consideration is that @jroper is a master troll :-D

rkuhn commented Mar 10, 2016

@rcavalcanti This seems to be a voting ticket, discussion will probably have to happen elsewhere ;-) Another consideration is that @jroper is a master troll :-D

@renatocaval

This comment has been minimized.

Show comment
Hide comment
@renatocaval

renatocaval Mar 10, 2016

Member

@rkuhn I want to see the first one to down vote it. ;-)
Nice if the discussion is elsewhere as long as it is open.

Member

renatocaval commented Mar 10, 2016

@rkuhn I want to see the first one to down vote it. ;-)
Nice if the discussion is elsewhere as long as it is open.

@jroper

This comment has been minimized.

Show comment
Hide comment
@jroper

jroper Mar 10, 2016

Member

-1

Member

jroper commented Mar 10, 2016

-1

@rkuhn

This comment has been minimized.

Show comment
Hide comment
@rkuhn

rkuhn Mar 10, 2016

There, see what you have done …

rkuhn commented Mar 10, 2016

There, see what you have done …

@jroper

This comment has been minimized.

Show comment
Hide comment
@jroper

jroper Mar 10, 2016

Member

Well, somebody had to balance out @jamie-allen.

Member

jroper commented Mar 10, 2016

Well, somebody had to balance out @jamie-allen.

@cpawali

This comment has been minimized.

Show comment
Hide comment
@cpawali

cpawali commented Mar 11, 2016

+1

@ng-swapna

This comment has been minimized.

Show comment
Hide comment
@ng-swapna

ng-swapna commented Mar 11, 2016

+1

@mailmrmanoj

This comment has been minimized.

Show comment
Hide comment

mailmrmanoj commented Mar 11, 2016

+1

@kankarsuresh

This comment has been minimized.

Show comment
Hide comment

kankarsuresh commented Mar 11, 2016

+1

@devidatta45

This comment has been minimized.

Show comment
Hide comment

devidatta45 commented Mar 11, 2016

+1

@ianp

This comment has been minimized.

Show comment
Hide comment
@ianp

ianp Mar 11, 2016

In the interest of cleaning up this issue, maybe all the folks who added “+1” or similar comments could delete them and add reactions instead?

ianp commented Mar 11, 2016

In the interest of cleaning up this issue, maybe all the folks who added “+1” or similar comments could delete them and add reactions instead?

@jpremkumar

This comment has been minimized.

Show comment
Hide comment
@jpremkumar

jpremkumar commented Mar 11, 2016

+1

@nagrajgudla

This comment has been minimized.

Show comment
Hide comment

nagrajgudla commented Mar 11, 2016

+1

@adyasha1018

This comment has been minimized.

Show comment
Hide comment

adyasha1018 commented Mar 11, 2016

+1

@bhavani9

This comment has been minimized.

Show comment
Hide comment
@bhavani9

bhavani9 commented Mar 11, 2016

+1

@amirkarimi

This comment has been minimized.

Show comment
Hide comment
@amirkarimi

amirkarimi commented Mar 11, 2016

+1

@khajavi

This comment has been minimized.

Show comment
Hide comment
@khajavi

khajavi commented Mar 11, 2016

+1

@kiranraj

This comment has been minimized.

Show comment
Hide comment
@kiranraj

kiranraj commented Mar 11, 2016

+1

@renatocaval

This comment has been minimized.

Show comment
Hide comment
@renatocaval

renatocaval Mar 11, 2016

Member

As @ianp suggested it would be better to not add a comment with +1 and comment with suggestions and real comments.

Since yesterday GitHub has a new feature that you can use if you want to show your support.
https://github.com/blog/category/ship

Better if everybody votes on @jroper first comment and delete their '+1' comment.

Member

renatocaval commented Mar 11, 2016

As @ianp suggested it would be better to not add a comment with +1 and comment with suggestions and real comments.

Since yesterday GitHub has a new feature that you can use if you want to show your support.
https://github.com/blog/category/ship

Better if everybody votes on @jroper first comment and delete their '+1' comment.

@viktorklang

This comment has been minimized.

Show comment
Hide comment
@viktorklang

viktorklang Mar 11, 2016

@rcavalcanti Good idea. Did as you proposed.

viktorklang commented Mar 11, 2016

@rcavalcanti Good idea. Did as you proposed.

@wsargent

This comment has been minimized.

Show comment
Hide comment
@wsargent

wsargent Mar 11, 2016

Contributor

All Hail Lord Roper

Contributor

wsargent commented Mar 11, 2016

All Hail Lord Roper

@aamir-f

This comment has been minimized.

Show comment
Hide comment
@aamir-f

aamir-f commented Mar 14, 2016

+1

@Cesarla

This comment has been minimized.

Show comment
Hide comment
@Cesarla

Cesarla commented Mar 17, 2016

+1

patriknw referenced this issue in patriknw/lagom Oct 21, 2016

scaladsl for CassandraSession, #1
* moved CassandraSessionImpl to akka-persistence-cassandra,
  since we already had a similar class there and some users
  of akka-persistence-cassandra have requested it
* akka-persistence-cassandra provides both scaladsl and javadsl
  and in lagom we can have thin api wrappers (delegating)

patriknw referenced this issue in patriknw/lagom Oct 24, 2016

scaladsl for CassandraSession, #1
* structure build for persistence-cassandra-scaladsl
* moved CassandraSessionImpl to akka-persistence-cassandra,
  since we already had a similar class there and some users
  of akka-persistence-cassandra have requested it
* akka-persistence-cassandra provides both scaladsl and javadsl
  and in lagom we can have thin api wrappers (delegating)

patriknw added a commit that referenced this issue Oct 24, 2016

patriknw referenced this issue in patriknw/lagom Oct 24, 2016

factory for PersistentEntity, #1
* to support DI with MacWire

patriknw referenced this issue in patriknw/lagom Oct 25, 2016

factory for PersistentEntity registration, #1
* to support DI with MacWire

patriknw referenced this issue in patriknw/lagom Oct 25, 2016

factory for ReadSide registration, #1
* to support DI with MacWire

patriknw referenced this issue in patriknw/lagom Oct 25, 2016

components trait for compile time DI, #1
* to support MacWire
* for scaladsl-persistence and scaladsl-persistence-jdbc

patriknw added a commit that referenced this issue Oct 26, 2016

patriknw referenced this issue in patriknw/lagom Oct 27, 2016

support for compile time DI (MacWire), #1
* for scaladsl-persistence and scaladsl-persistence-jdbc
* factory for PersistentEntity registration
* factory for ReadSide registration
* components trait for compile time DI
* separate traits for write and read side
* split up cluster module
* remove guice

patriknw referenced this issue in patriknw/lagom Oct 27, 2016

support for compile time DI (MacWire), #1
* for scaladsl-persistence and scaladsl-persistence-jdbc
* factory for PersistentEntity registration
* factory for ReadSide registration
* components trait for compile time DI
* separate traits for write and read side
* split up cluster module
* remove guice

patriknw added a commit that referenced this issue Oct 27, 2016

Merge pull request #223 from patriknw/wip-injector-patriknw
support for compile time dependency injection, #1

patriknw added a commit that referenced this issue Oct 28, 2016

ScalaDSL for Cassandra, #1 (#231)
* Access to session moved to core
* Scala API for cassandra
* Re-enabled PersistentEntityTestDriverSpec
* Use immutable.Seq import style
* Guice eliminated from the Cassandra scaladsl

patriknw referenced this issue in patriknw/lagom Oct 30, 2016

infer right reply type in entityRef.ask, #1
* The return type from PersistentEntityRef.ask was inferred to
  Future[Nothing]
* Add type member in ReplyType and use that in ask
* To make the CommandContext.reply method use the right type
  I changed the definition of the command handlers to be per
  command class, which also has several other benefits:
  * no need to pass the command as parameter to reply
  * defining handler per class is more natural than chaining
    one single partial function
  * easier to read (understand) the command handler definitions
    when the types are enforced

patriknw added a commit that referenced this issue Nov 2, 2016

patriknw added a commit that referenced this issue Nov 8, 2016

Merge pull request #234 from patriknw/wip-refFor-ClassTag-patriknw
use ClassTag in PersistentEntityRegistry.refFor, #1
@sergevoloshyn

This comment has been minimized.

Show comment
Hide comment
@sergevoloshyn

sergevoloshyn Nov 21, 2016

Hi!
I'm building a prototype using lagom and it's very critical for us to have scala api as well as to have compatibility with latest Scala 2.12.
Do you have a date when it will be ready? And will it be based on Scala 2.12?

sergevoloshyn commented Nov 21, 2016

Hi!
I'm building a prototype using lagom and it's very critical for us to have scala api as well as to have compatibility with latest Scala 2.12.
Do you have a date when it will be ready? And will it be based on Scala 2.12?

@jroper

This comment has been minimized.

Show comment
Hide comment
@jroper

jroper Nov 21, 2016

Member

The Scala API is nearing complete and we hope to release a milestone in the coming weeks. We haven't yet moved to Scala 2.12, on our critical path is getting a release of Play that is built against 2.12. They haven't yet built against Scala 2.12, but they are working on it here:

playframework/playframework#6691

Once they do that, if they backport that to Play 2.5, then it should be no problems, otherwise we'll need to wait until Play 2.6 is released.

Member

jroper commented Nov 21, 2016

The Scala API is nearing complete and we hope to release a milestone in the coming weeks. We haven't yet moved to Scala 2.12, on our critical path is getting a release of Play that is built against 2.12. They haven't yet built against Scala 2.12, but they are working on it here:

playframework/playframework#6691

Once they do that, if they backport that to Play 2.5, then it should be no problems, otherwise we'll need to wait until Play 2.6 is released.

@jroper

This comment has been minimized.

Show comment
Hide comment
@jroper

jroper Nov 29, 2016

Member

Update: Once #302 is merged, the Scala API will be mostly usable, the only major feature gap is pubsub which I'm working on right now and should be finished tomorrow.

Our plan is to release a milestone in the first week of December (next week). We did want to release the final by the end of the year, but I don't think that's a realistic amount of time, especially given that community feedback would be valuable and it will probably take longer than that to get meaningful feedback from the community, so our current plan is to release the final by the end of January.

Member

jroper commented Nov 29, 2016

Update: Once #302 is merged, the Scala API will be mostly usable, the only major feature gap is pubsub which I'm working on right now and should be finished tomorrow.

Our plan is to release a milestone in the first week of December (next week). We did want to release the final by the end of the year, but I don't think that's a realistic amount of time, especially given that community feedback would be valuable and it will probably take longer than that to get meaningful feedback from the community, so our current plan is to release the final by the end of January.

@yannickdeturck

This comment has been minimized.

Show comment
Hide comment
@yannickdeturck

yannickdeturck Nov 29, 2016

Contributor

Looking forward to it!

Contributor

yannickdeturck commented Nov 29, 2016

Looking forward to it!

@Fabszn

This comment has been minimized.

Show comment
Hide comment
@Fabszn

Fabszn Nov 29, 2016

Contributor

I am looking forward it too!!!!:))

Contributor

Fabszn commented Nov 29, 2016

I am looking forward it too!!!!:))

@mseravalli

This comment has been minimized.

Show comment
Hide comment
@mseravalli

mseravalli Dec 8, 2016

looking forward

mseravalli commented Dec 8, 2016

looking forward

@jroper

This comment has been minimized.

Show comment
Hide comment
@jroper

jroper Dec 9, 2016

Member

We've just cut Lagom 1.3.0-M1 as a preview release of the Scala API:

http://www.lagomframework.com/blog/lagom-scala-api-preview.html

We would appreciate evaluators to check it out, and give us feedback. Note that there are things about this API that will change before we cut the final (due at the end of January), so we don't recommend using it in a production system yet.

Member

jroper commented Dec 9, 2016

We've just cut Lagom 1.3.0-M1 as a preview release of the Scala API:

http://www.lagomframework.com/blog/lagom-scala-api-preview.html

We would appreciate evaluators to check it out, and give us feedback. Note that there are things about this API that will change before we cut the final (due at the end of January), so we don't recommend using it in a production system yet.

@dpennell

This comment has been minimized.

Show comment
Hide comment
@dpennell

dpennell Dec 29, 2016

Looks awesome so far. I'm building two new services with it and will probably convert a few more soon.

I assume that com.lightbend.lagom.scaladsl.testkit.ServiceTest is one of those testkit API's that isn't finished yet.

dpennell commented Dec 29, 2016

Looks awesome so far. I'm building two new services with it and will probably convert a few more soon.

I assume that com.lightbend.lagom.scaladsl.testkit.ServiceTest is one of those testkit API's that isn't finished yet.

@jroper

This comment has been minimized.

Show comment
Hide comment
@jroper

jroper Jan 2, 2017

Member

It is finished, you can find it if you build master from source, it's just not in the 1.3.0-M1 release.

Member

jroper commented Jan 2, 2017

It is finished, you can find it if you build master from source, it's just not in the 1.3.0-M1 release.

@jroper jroper added this to the 1.3.0 milestone Jan 24, 2017

@jroper

This comment has been minimized.

Show comment
Hide comment
@jroper

jroper Jan 24, 2017

Member

The Lagom Scala API, including documentation, is now complete. See http://www.lagomframework.com/blog/lagom-1-3-RC1.html for details.

Member

jroper commented Jan 24, 2017

The Lagom Scala API, including documentation, is now complete. See http://www.lagomframework.com/blog/lagom-1-3-RC1.html for details.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment