Code Monkey home page Code Monkey logo

clojure-polylith-realworld-example-app's Introduction

LinkedIn Twitter Follow Clojurians Slack

Hi there ๐Ÿ‘‹

I am a passionate team leading engineer (full-stack) with more than 8 years of experience designing and implementing technically sophisticated backend systems, integrations, frontend web applications and mobile apps. I've been working mainly with Clojure and ClojureScript in the last 5 years.

I'm currently working as the CTO of Scrintal. We are developing Scrintal with using Clojure, ClojureScript, Datomic, DataScript, Reagent, and re-frame.

๐Ÿ’ช Open Source

I contribute to the Polylith project. Polylith is a software architecture that applies functional thinking at the system scale. It helps us build simple, maintainable, testable, and scalable backend systems.

๐Ÿ“ฌ Contact

If you are interested in anything I mentioned above, feel free to contact me via LinkedIn, Twitter or Clojurians Slack.

clojure-polylith-realworld-example-app's People

Contributors

furkan3ayraktar avatar ortex avatar pez avatar tengstrand avatar the-alchemist avatar zelark avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

clojure-polylith-realworld-example-app's Issues

error handling

Hi team,

I checked the code a bit and seems for this example app there's no error handling for:

  • database operations
  • rpc calls

What will happen to current example app if the disk of the database server is full?

I also posted a similar question in the forum https://polylith.freeflarum.com/d/7-distributed-error-handling-for-microservice-deployment-style

Guess this is an important piece if we want to build a real application, since extensive error handling will actually shape the interface quite a bit, increasing the development cost.

lein ring server-headless fails

Hi I'm having trouble running lein ring server-headless in environments\development. It's giving me the following error:
Could not locate clojure/realworld/rest_api/api__init.class or clojure/realworld/rest_api/api.clj on classpath. Please check that namespaces with dashes use underscores in the Clojure file name.
I'm using leiningen v 2.8.3, updated lein-ring to 0.12.5. I've also checked namespaces using dashes though I don't think it could be the issue. I also could not create symbolic links when creating new components.

Problem running the project with Emacs/Cider

I'm using cider, M-x cider-jack-in-clj,

Full report at:
/tmp/clojure-14664372717496286616.edn
 ("exited abnormally with code 1")
[nREPL] Starting server via /bin/clojure -Sdeps '{:deps {nrepl/nrepl {:mvn/version "1.0.0"} cider/cider-nrepl {:mvn/version "0.30.0"} refactor-nrepl/refactor-nrepl {:mvn/version "3.6.0"}} :aliases {:cider/nrepl {:main-opts ["-m" "nrepl.cmdline" "--middleware" "[refactor-nrepl.middleware/wrap-refactor,cider.nrepl/cider-middleware]"]}}}' -M:cider/nrepl
error in process sentinel: nrepl-server-sentinel: Could not start nREPL server: Execution error (FileNotFoundException) at java.io.FileInputStream/open0 (FileInputStream.java:-2).
-Sdeps (No such file or directory)

And the full report says:

{:clojure.main/message
 "Execution error (FileNotFoundException) at java.io.FileInputStream/open0 (FileInputStream.java:-2).\n-Sdeps (No such file or directory)\n",
 :clojure.main/triage
 {:clojure.error/class java.io.FileNotFoundException,
  :clojure.error/line -2,
  :clojure.error/cause "-Sdeps (No such file or directory)",
  :clojure.error/symbol java.io.FileInputStream/open0,
  :clojure.error/source "FileInputStream.java",
  :clojure.error/phase :execution},
 :clojure.main/trace
 {:via
  [{:type java.io.FileNotFoundException,
    :message "-Sdeps (No such file or directory)",
    :at [java.io.FileInputStream open0 "FileInputStream.java" -2]}],
  :trace
  [[java.io.FileInputStream open0 "FileInputStream.java" -2]
   [java.io.FileInputStream open "FileInputStream.java" 216]
   [java.io.FileInputStream <init> "FileInputStream.java" 157]
   [java.io.FileInputStream <init> "FileInputStream.java" 111]
   [clojure.lang.Compiler loadFile "Compiler.java" 7588]
   [clojure.main$load_script invokeStatic "main.clj" 475]
   [clojure.main$script_opt invokeStatic "main.clj" 535]
   [clojure.main$script_opt invoke "main.clj" 530]
   [clojure.main$main invokeStatic "main.clj" 664]
   [clojure.main$main doInvoke "main.clj" 616]
   [clojure.lang.RestFn applyTo "RestFn.java" 137]
   [clojure.lang.Var applyTo "Var.java" 705]
   [clojure.main main "main.java" 40]],
  :cause "-Sdeps (No such file or directory)"}}

Create a branch which uses a real, realworld database like Postgres

I haven't been able to find any Polylith examples which use a real, realworld database like Postgres (or MySQL etc.). I have a few Clojure web services which use Postgres + connection pooling (hikari), though I have no idea how to incorporate that into a Polylith project.

Install the [Polylith tool] link in readme no useful

Hi,

1. Install the [Polylith tool](https://github.com/polyfy/polylith#installation)

this link from the readme just puts you to the polilith repo, I guess there is no installation section anymore or something.

Update the doc to reflect how we specify bricks in projects

Update the doc to reflect that we now use :local/root when specifying which bricks to include in a project.

For example this sentence:
If you look at the directory projects/realworld-backend, you will see a standard deps.edn file. The magic here is the project's deps.edn file which refers to the sources, resources and tests of actual components and bases.

Here we could also link to the deps.edn file.

ring is not a task

Sorry for the stupid question, I've never used Closure before and just installed lein today for this demo and noticed this error:

$ lein ring server-headless
'ring' is not a task. See 'lein help'.

Please advice, thank you.

Improve authentication logic

Instead of querying the database with user's JWT, it could be nice to validate the token with clj-jwt and extract the user id from claims. Then, the database can be queried by the user id instead of the token. This will eliminate the need for saving the JWT in to the database in the first place.

Thanks to @stask for pointing out this issue.

`lein polylith build` fails on fresh checkout

I wanted to try to run this application, but when I checked it out I couldn't get it to build. It tosses a large stacktrace while building the systems/realworld-backend (attached below).

lein -v reports Leiningen 2.9.1 on Java 1.8.0_202 OpenJDK 64-Bit Server VM

build-stacktrace.txt

Update Cursive Readme: ":local/root" now supported by 1.13.0 of Cursive plugin

According to the latest tweet, and my own experience with this new version of the plugin, you no longer need the Cursive-specific instructions to replace :extra-deps with :extra-paths. Version 1.13.0 of the Cursive plugin fixes this. I'm using the EAP release of IntelliJ, though today I just updated to the Beta release and maybe that means things can work without the EAP channel.

Either way, :local/root works now with Cursive and you can update the readme.

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.