Dworkin API is a strict successor of Lagom framework in terms of using progressive Java technologies like:

  • Java 8 CompletionStage  for asynchronous computation across all modules . Each component is used in data interaction flow from DB tier to customer external APIs and always returns non-blocking result
  • Immutability for all entities and DTO (data transfer objects). It means that code based on immutable objects is clearer and likelier to be correct – bugs involving unexpected changes simply could not occur. Another advantage is that multiple threads can safely access immutable objects concurrently. Dworkin is following Lagom suggestions and uses PCollections for all collection across the project
  • Dworkin continues to use all Java 8 language sugar like lambdasdefault methods, and Optional
  • The only format for Serialization in Dworkin is JSON, which managed by Jackson.
  • Dworkin is using Play framework (other top product from Lightbend) for external customer and merchant API methods.
  • Swagger is used to manage external API documentation
  • Guice is using for dependency injection
  • Dworkin uses SLF4J for logging, backed by Logback as its default logging engine.
  • Elastic search products like Elastic search, LogstashKibana and Beats are suggested to use for logs management
  • Consul is using for services discovering in Dworkin production mode
  • Apache JCS and Infispan are using for data caching and cache replication in production mode