Giter Site home page Giter Site logo

sumologic / the-coffee-bar Goto Github PK

View Code? Open in Web Editor NEW
6.0 26.0 10.0 16.64 MB

A example demo application showcasing tracing capabilities.

License: Apache License 2.0

Dockerfile 1.47% C# 3.18% Python 29.38% Ruby 5.04% Shell 2.61% HTML 1.46% JavaScript 22.38% Mustache 13.01% Makefile 4.68% Kotlin 9.24% Swift 7.55%

the-coffee-bar's Introduction

The Coffee Bar App

The demo application instrumented by OpenTelemetry framework.

Content

  • deployments directory contains specific deployments templates files
  • applications directory contains sources of the application
    • aws-lambdas - contains sources of the CheckSweets and Sweets AWS lambda functions
    • dotnet-core-calculator-svc - contains sources of the calculator-svc application
    • js-the-coffee-bar-ui-clicker - contains sources of the puppeteer which clicks on the frontend application
    • python-the-coffee-bar-apps - contains sources of the-coffee-lover, the-coffee-bar, the-coffee-machine and the-cashdesk applications
    • ruby-the-coffee-bar-apps - contains sources of machine-svc, coffee-svc and water-svc applications
    • the-coffee-bar-frontend - contains sources of the web UI application
  • scripts - directory contains build scripts

Prerequisities

How to build?

Execute the build script build_local_all.sh from scripts directory. The script is going to build all of the applications in the docker images. To run the application execute docker-compose up command in the dockerization directory.

Application Overview

The Coffee Bar is an application designed to test instrumentation possibilities using the OpenTelemetry framework. The application consists of several small services written in various languages, including Python, Ruby and ASP .NET Core.

Application flow

Like in the real italian coffee bar there is espresso and his fans. The coffee enthusiast role goes to the-coffee-bar-frontend web application or the-coffee-lover app (traffic simulator). the-coffee-bar is a small italian bar where the-coffee-machine and the-cashdesk are located. the-coffee-machine with her parts: machine-svc responsible for coffee preparation, coffee-svc responsible for providing coffee beans and water-svc responsible for water provision. The espresso coffee is not for free. Payment is handled by the-cashdesk. To be sure that the sum to be paid is correct, calculator-svc is present.

  1. the-coffee-bar-frontend - The Coffee Bar user interface
  2. the-coffee-lover is asking for espresso coffee by HTTP POST request with specific JSON to the-coffee-bar service.
  3. the-coffee-bar is sending the HTTP POST request to the-coffee-machine which sends a request to machine-svc.
  4. machine-svc calls coffee-svc and water-svc for ingredients and then prepares coffee.
  5. When coffee is done the-coffee-bar is sending the payment request to the-cashdesk.
  6. the-cashdesk application is querying postgres to get a coffee price and then sends a request to calculator-svc
  7. calculator-svc is doing some simple mathematical operations.
  • the-coffee-bar-frontend - NodeJS
  • the-coffee-lover - Python
    • the-coffee-bar - Python
      • lambdas - Python
      • the-coffee-machine - Python
        • machine-svc - Ruby
          • coffee-svc - Ruby
          • machine-svc - Ruby
      • the-cashdesk - Python
        • calculator-svc - ASP .NET Core
        • postgres

Contact

In case of any issues please contact Mateusz 'mat' Rumian @ [email protected]

the-coffee-bar's People

Contributors

arunpatyal avatar dkluba avatar dmolenda-sumo avatar duchatran avatar eddie-sumo avatar hchoudharysumologic avatar ishaanahuja29 avatar kkruk-sumo avatar mat-rumian avatar perk-sumo avatar soagarwal07 avatar trybaksumo avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 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

the-coffee-bar's Issues

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.