Waste2Go: Stream IoT Data Using Functions on Oracle Cloud Infrastructure

Founded in 2019 in São Paulo, Brazil, Waste2Go's mission is to improve the way companies track, collect, and transport waste. By attaching sensors to trash bins, Waste2Go's cloud-native platform monitors the volume of solid or liquid waste at target collection points, suggests the best truck routes for collection, and then tracks pick-up, transport, and disposal of the waste to optimize collection cycles.

Customer Story

Learn more about Waste2Go's journey to Oracle Cloud:


The production environment running on Oracle Cloud Infrastructure is located in the Oracle Cloud region in São Paulo, Brazil. The application servers are distributed across two subnets, with a load balancer in each. These subnets host both the front end, and back-end environments.

Waste2go designed its architecture so that the sensors that they install on waste bins can easily send data to Oracle Functions, where that data can be processed and then stored in a Docker application. As sensors capture the volume and type of waste in each bin, Oracle Functions collects the encrypted data, decrypts the data by using Python code inside the function, and then stores the data in the backend system. All of the data is displayed in a dashboard, where users can quickly and easily monitor waste volumes, and determine the best time and route to collect the waste from the bins.

Waste2Go's architecture diagram shows the following components:

  • One VCN with two subnets
  • Two Load Balancers
  • Oracle Functions
  • Compute virtual machines (VMs) running Docker containers

The following diagram illustrates this reference architecture.


The architecture has the following components:

  • Region

    An Oracle Cloud Infrastructure region is a localized geographic area that contains one or more data centers, called availability domains. Regions are independent of other regions, and vast distances can separate them (across countries or even continents).

  • Availability domain

    Availability domains are standalone, independent data centers within a region. The physical resources in each availability domain are isolated from the resources in the other availability domains, which provides fault tolerance. Availability domains don’t share infrastructure such as power or cooling, or the internal availability domain network. So, a failure at one availability domain is unlikely to affect the other availability domains in the region.

  • Virtual cloud network (VCN) and subnets

    A VCN is a customizable, software-defined network that you set up in an Oracle Cloud Infrastructure region. Like traditional data center networks, VCNs give you complete control over your network environment. A VCN can have multiple non-overlapping CIDR blocks that you can change after you create the VCN. You can segment a VCN into subnets, which can be scoped to a region or to an availability domain. Each subnet consists of a contiguous range of addresses that don't overlap with the other subnets in the VCN. You can change the size of a subnet after creation. A subnet can be public or private.

  • Internet gateway

    The internet gateway allows traffic between the public subnets in a VCN and the public internet.

  • Functions

    Oracle Functions is a fully managed, multitenant, highly scalable, on-demand, Functions-as-a-Service (FaaS) platform. It is powered by the Fn Project open source engine. Functions enable you to deploy your code, and either call it directly or trigger it in response to events. Oracle Functions uses Docker containers hosted in Oracle Cloud Infrastructure Registry.

  • Load balancer

    The Oracle Cloud Infrastructure Load Balancing service provides automated traffic distribution from a single entry point to multiple servers in the back end.

Explore More

Learn more about the features of this architecture.