Coder Social home page Coder Social logo

online-auction-java's Introduction

Lagom

Gitter

INTRO

Lagom is a Swedish word meaning just right, sufficient. Microservices are about creating services that are just the right size, that is, they have just the right level of functionality and isolation to be able to adequately implement a scalable and resilient system.

Lagom focuses on ensuring that your application realises the full potential of the Reactive Manifesto, while delivering a high productivity development environment, and seamless production deployment experience.

This is a sample Java auction system using the Lagom Framework. A Scala version of the auction system is also available.

Getting started

To get started make sure you have sbt and git installed on your system. You will also need an active internet connection.

Running: Prerequisites

You will need to install sbt:

You will need to download and run an Elastisearch server: (optional)

curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.0.2.tar.gz
tar -xvf elasticsearch-5.0.2.tar.gz
cd elasticsearch-5.0.2/bin
./elasticsearch

Running in Development Mode

On another terminal, clone this repo and run the sample app using the command sbt runAll:

git clone [email protected]:lagom/online-auction-java.git
cd online-auction-java
sbt runAll

Running in Production Mode

See Running Online Auction in ConductR Sandbox for instructions.

Importing into IDEs (optional)

Displaying inline instructions (optional)

To get a better understanding of what can be done at each step of the application, inline instructions are displayed on the web UI. To disable these instructions, go to application.conf in the web-gateway micro-service and set online-auction.instruction.show to false.

Auction system - System architecture

The auction system is the sum of 5 micro-services and a web gateway:

  • Item Service: Manages the description and auction status (created, auction, completed, cancelled) of an item.
  • Bidding service: Manages bids on items.
  • Search service: Handles all item searching.
  • Transaction service: Handles the transaction of negotiating delivery info and making payment of an item that has completed an auction.
  • user-service: a convenience service to stub user management. Don't use any code in user-service as reference on how to create a secure user management micro-service.
  • web-gateway: a Play application providing web UI and acting as gateway to all previously described services.

Check the docs for each service for details on the commands and queries it serves as well as events the service emits and events it consumes from the Message Broker.

Good to know

  • Hello World seed: For a simple, gentler, introduction to Lagom with Java, have a look at the Hello World Lagom archetype using Maven or Giter8 lagom template with sbt.

  • Getting help: If you have any troubles and need help, feel free to ask in the Gitter channel

online-auction-java's People

Contributors

jroper avatar ignasi35 avatar lakhina avatar yg-apaza avatar mehulsr avatar timmoore avatar 0xlbr avatar benmccann avatar erip avatar longmuir avatar mkurz avatar tommpy avatar

Watchers

James Cloos avatar Fabio Covolo Mazzo avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.