Intershops Microservice Technology Stack

You might wanna know what we are using for our Microservices?

Here we go:

Name Description Target Environment
Service Registration & Service Discovery
Netflix OSSNetflix Eureka

Eureka is a REST (Representational State Transfer) based service that is primarily used in the AWS cloud for locating services for the purpose of load balancing and failover of middle-tier servers.

At Netflix, Eureka is used for the following purposes apart from playing a critical part in mid-tier load balancing.

  • For aiding Netflix Asgard – an open source service which makes cloud deployments easier, in
    • Fast rollback of versions in case of problems avoiding the re-launch of 100’s of instances which could take a long time.
    • In rolling pushes, for avoiding propagation of a new version to all instances in case of problems.
  • For our cassandra deployments to take instances out of traffic for maintenance.
  • For our memcached caching services to identify the list of nodes in the ring.
  • For carrying other additional application specific metadata about services for various other reasons.

Source: https://github.com/Netflix/eureka

Development

Test

Production

Servlet Container
Apache TomcatApache Tomcat

The Apache Tomcat® software is an open source implementation of the Java Servlet, JavaServer Pages, Java Expression Language and Java WebSocket technologies. The Java Servlet, JavaServer Pages, Java Expression Language and Java WebSocket specifications are developed under the Java Community Process.

The Apache Tomcat software is developed in an open and participatory environment and released under the Apache License version 2. The Apache Tomcat project is intended to be a collaboration of the best-of-breed developers from around the world. We invite you to participate in this open development project.

Apache Tomcat software powers numerous large-scale, mission-critical web applications across a diverse range of industries and organizations.

Source: https://tomcat.apache.org/

Development

Test

Eclipse JettyEclipse Jetty

Jetty provides a Web server and javax.servlet container, plus support for HTTP/2, WebSocket, OSGi, JMX, JNDI, JAAS and many other integrations. These components are open source and available for commercial use and distribution.

Jetty is used in a wide variety of projects and products, both in development and production. Jetty can be easily embedded in devices, tools, frameworks, application servers, and clusters. See the Jetty Powered page for more uses of Jetty.

The current recommended version for use is Jetty 9 which can be obtained here: Jetty Downloads. Also available are the latest maintenance releases of Jetty 8 and Jetty 7.

The Jetty project has been hosted at the Eclipse Foundation since 2009. Prior releases of Jetty have existed in part or completely under the Jetty project at the The Codehaus and Sourceforge before that.

Source: https://www.eclipse.org/jetty/

Development

Test

Production

Persistence
EclipseLinkEclipse Link

The EclipseLink project provides a runtime persistence solution focused on leading standards and extended functionality needed for today’s enterprise Java and SOA application development. EclipseLink offers support for:

  • Object-Relational (JPA)
  • NoSQL (NoSQL databases, and EIS)
  • MOXy: Object-XML (JAXB) & Object-JSON
  • DBWS: Database Web Services
  • Service Data Objects (SDO)

EclipseLink is a sub-project of the Runtime Project.

Source: https://wiki.eclipse.org/EclipseLink

Development

Test

Production

Database
PostgreSQLPostgreSQL

PostgreSQL is a powerful, open source object-relational database system. It has more than 15 years of active development and a proven architecture that has earned it a strong reputation for reliability, data integrity, and correctness. It runs on all major operating systems, including Linux, UNIX (AIX, BSD, HP-UX, SGI IRIX, Mac OS X, Solaris, Tru64), and Windows. It is fully ACID compliant, has full support for foreign keys, joins, views, triggers, and stored procedures (in multiple languages). It includes most SQL:2008 data types, including INTEGER, NUMERIC, BOOLEAN, CHAR, VARCHAR, DATE, INTERVAL, and TIMESTAMP. It also supports storage of binary large objects, including pictures, sounds, or video. It has native programming interfaces for C/C++, Java, .Net, Perl, Python, Ruby, Tcl, ODBC, among others, and exceptional documentation.

Source: https://www.postgresql.org/

Development

Test

Apache DerbyApache Derby

Apache Derby, an Apache DB subproject, is an open source relational database implemented entirely in Java and available under the Apache License, Version 2.0. Some key advantages include:

  • Derby has a small footprint — about 2.6 megabytes for the base engine and embedded JDBC driver.
  • Derby is based on the Java, JDBC, and SQL standards.
  • Derby provides an embedded JDBC driver that lets you embed Derby in any Java-based solution.
  • Derby also supports the more familiar client/server mode with the Derby Network Client JDBC driver and Derby Network Server.
  • Derby is easy to install, deploy, and use.

Source: https://db.apache.org/derby/

Development

Test

For now this is what we want to use. This may change over time, evolve from our findings but this is where we start from. But keep in mind. There are no Microservices templates per se not one framework. You are free to implement Microservices how ever you want them with the stack you desire and/or comfortable with.

Intershops Microservice Technology Stack
Tagged on: