Skip to content
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
Closed

Add Scala API #1

jroper opened this issue Mar 10, 2016 · 106 comments
Milestone

Comments

@jroper
Copy link
Member

jroper commented Mar 10, 2016

Lagom needs a Scala API.

@dafeiroc
Copy link

+1

11 similar comments
@lshoo
Copy link

lshoo commented Mar 10, 2016

+1

@arunma
Copy link

arunma commented Mar 10, 2016

+1

@rysh
Copy link

rysh commented Mar 10, 2016

+1

@kushti
Copy link

kushti commented Mar 10, 2016

+1

@logistark
Copy link

+1

@miklos-martin
Copy link

👍

@rayyildiz
Copy link

+1

@devsprint
Copy link

+1

@inanna-malick
Copy link

+1

@cenkcorapci
Copy link

+1

@Vanco
Copy link

Vanco commented Mar 10, 2016

+1

@gantamk
Copy link

gantamk commented Mar 10, 2016

+9000000000000000L (withMagicBase)

@russwyte
Copy link

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

@octonato
Copy link
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?

@Mullefa
Copy link

Mullefa commented Mar 10, 2016

+1

1 similar comment
@pathikrit
Copy link

+1

@rkuhn
Copy link

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

@octonato
Copy link
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.

@jroper
Copy link
Member Author

jroper commented Mar 10, 2016

-1

@rkuhn
Copy link

rkuhn commented Mar 10, 2016

There, see what you have done …

@jroper
Copy link
Member Author

jroper commented Mar 10, 2016

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

@mcpawali
Copy link

+1

4 similar comments
@swapna-devadict
Copy link

+1

@mailmrmanoj
Copy link

+1

@kankarsuresh
Copy link

+1

@devidatta45
Copy link

+1

@ianp
Copy link

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
Copy link

+1

1 similar comment
@nagrajgudla
Copy link

+1

patriknw added a commit that referenced this issue Oct 26, 2016
patriknw referenced this issue in patriknw/lagom Oct 27, 2016
* 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
* 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
support for compile time dependency injection, #1
patriknw pushed a commit that referenced this issue Oct 28, 2016
* 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
* 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
infer right reply type in entityRef.ask, #1
patriknw added a commit that referenced this issue Nov 8, 2016
use ClassTag in PersistentEntityRegistry.refFor, #1
@sergevoloshyn
Copy link

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
Copy link
Member Author

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
Copy link
Member Author

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
Copy link
Contributor

Looking forward to it!

@Fabszn
Copy link

Fabszn commented Nov 29, 2016

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

@mseravalli
Copy link

looking forward

@jroper
Copy link
Member Author

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
Copy link

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
Copy link
Member Author

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
Copy link
Member Author

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
Labels
None yet
Development

No branches or pull requests